Stories
Slash Boxes
Comments

SoylentNews is people

posted by janrinok on Thursday October 02 2014, @09:02PM   Printer-friendly
from the bash-dash-ash-mish-mash dept.

An interesting thread has been started on the Fedora mailing list proposing that Bash be replaced with Dash as the core (/bin/sh) shell. It should be noted though that this is still a thread discussion as far as I know, not a policy decision announcement, and nothing concrete has been reached.

Personally and even though this proposal seems at least partially based on the recent Shellshock hysteria I'm happy to see that people are finally starting to consider things like technical superiority and simplicity over politics, and treating bloat and feature creep as far from harmless. I also hope that other distribution maintainers have the same kind of discussion. I'd like to see Arch for example start using dash in the core install since even with shell script heavy systems - like those that use sysvinit - very rarely are non-POSIX features used and, when they are, they probably shouldn't be.

For those unaware dash is a tiny and robust shell that aims for strict POSIX conformance with as small a runtime and disk footprint as possible. It was originally a fork of ash which is a pretty good shell for embedded or otherwise thin systems and is what is built into busybox for a shell. Here is its official page.

This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 4, Informative) by jasassin on Thursday October 02 2014, @09:18PM

    by jasassin (3566) <jasassin@gmail.com> on Thursday October 02 2014, @09:18PM (#101133) Homepage Journal

    It seems dash as a replacement shell for the init process may speed thing up more than upstart or systemd.

    http://lwn.net/Articles/343924/ [lwn.net]

    They use dash just as a shell for init. Default user login shell is still bash! This is a "good thing".

    --
    jasassin@gmail.com GPG Key ID: 0xE6462C68A9A3DB5A
    • (Score: 1, Insightful) by Anonymous Coward on Thursday October 02 2014, @09:45PM

      by Anonymous Coward on Thursday October 02 2014, @09:45PM (#101144)

      Instead of using bash or dash, why not just get rid of the shell altogether and have systemd be the shell? Systemd already tries to do everything else. It might as well be the shell, too.

      • (Score: 2) by jasassin on Thursday October 02 2014, @09:59PM

        by jasassin (3566) <jasassin@gmail.com> on Thursday October 02 2014, @09:59PM (#101149) Homepage Journal

        Correct me if I'm wrong. Systemd does not use any shell. This has no impact on systemd systems. What you suggest is already the way it works.

        --
        jasassin@gmail.com GPG Key ID: 0xE6462C68A9A3DB5A
        • (Score: 5, Funny) by Anonymous Coward on Thursday October 02 2014, @10:08PM

          by Anonymous Coward on Thursday October 02 2014, @10:08PM (#101155)

          I don't think you understand. The AC is talking about getting rid of /bin/sh, /bin/bash, /bin/dash, /bin/ksh, /bin/csh, /bin/tcsh, /bin/zsh, and every other shell that exists. Instead of using any of them, systemd can be modified to be the shell.

          So this is how it would work: your system boots, the BIOS starts grub, grub starts the Linux kernel, the Linux kernel starts systemd, you can log in to systemd, and then you're good to go. You can use the command line or start up GNOME 3.

          But once that's in place, it becomes obvious that we don't need all of that junk. Systemd can be updated to include the kernel functionality. That way we can get rid of Linux. And we also don't need grub, because the BIOS could just start systemd directly. And since GNOME 3 and systemd are already so dependent, GNOME 3 could just be pushed totally into systemd.

          So the ideal flow would be: your system boots, systemd starts, and you're good to go.

          See how it works? Systemd becomes your entire software stack! It's fantastic, because it does everything! Since there's only one piece of software running, the attack vectors are small. And since there's only one piece of software running, updates become really easy. There's no more need for rpm or dpkg or any other packaging system!

          It's clearly the perfect way.

          • (Score: 2) by maxwell demon on Thursday October 02 2014, @10:13PM

            by maxwell demon (1608) on Thursday October 02 2014, @10:13PM (#101158) Journal

            because the BIOS could just start systemd directly.

            The BIOS? What a waste. Just burn systemd into the motherboard's Flash. Then it can take over as soon as power is switched on. The BIOS functionality can easily be integrated in systemd.

            --
            The Tao of math: The numbers you can count are not the real numbers.
            • (Score: 0) by Anonymous Coward on Thursday October 02 2014, @10:21PM

              by Anonymous Coward on Thursday October 02 2014, @10:21PM (#101166)

              Well, why even have a computer at that point? One could just have systemd embedded into one's gonads. It will subsume the function of the rest of the body, which can be discarded, and systemd will then be responsible for the core purpose of life: reproduction.

              • (Score: 2, Funny) by Horse With Stripes on Thursday October 02 2014, @11:14PM

                by Horse With Stripes (577) on Thursday October 02 2014, @11:14PM (#101183)

                Um ... gonads are a mobile system by default, but battery installation and recharging are a bitch. I'm just sayin'

            • (Score: 2) by mcgrew on Friday October 03 2014, @07:06PM

              by mcgrew (701) <publish@mcgrewbooks.com> on Friday October 03 2014, @07:06PM (#101496) Homepage Journal

              That's pretty much how the Sinclair ZX81 [wikipedia.org] worked. One board with only four chips.

              --
              mcgrewbooks.com mcgrew.info nooze.org
          • (Score: 1) by khallow on Friday October 03 2014, @01:11AM

            by khallow (3766) Subscriber Badge on Friday October 03 2014, @01:11AM (#101221) Journal
            We'll still need something to manage the boot up process better. nextbigthingd does that just fine and it's flexible enough and powerful enough to do a bunch of things that systemd doesn't do very well.
          • (Score: 2) by sjames on Friday October 03 2014, @04:52AM

            by sjames (2882) on Friday October 03 2014, @04:52AM (#101271) Journal

            I heard that if you press control-f while the system is booting it goes into a hidden flight simulator. For some reason the only aircraft available is the Hindenburg.

            • (Score: 0) by Anonymous Coward on Friday October 03 2014, @07:08AM

              by Anonymous Coward on Friday October 03 2014, @07:08AM (#101295)

              full disclosure: i lolled hard

        • (Score: 3, Informative) by Lagg on Thursday October 02 2014, @10:14PM

          by Lagg (105) on Thursday October 02 2014, @10:14PM (#101160) Homepage Journal

          Ironically enough, it does in a manner of speaking. Not like the jackass AC above would care to look though. In nspawn.c there's a line that execs /bin/bash if systemd-nspawn isn't passed the opt to search for an init or an explicit shell to run. Can easily be fixed though considering that the line right under it also execs /bin/sh.

          --
          http://lagg.me [lagg.me] 🗿
          • (Score: 0) by Anonymous Coward on Thursday October 02 2014, @10:18PM

            by Anonymous Coward on Thursday October 02 2014, @10:18PM (#101164)

            I don't think that AC is a "jackass". What he described is in fact the systemd "do it all, and do it all poorly" philosophy. Yes, it's a dumb as fuck philosophy, but it's still the systemd philosophy.

            • (Score: 2) by Lagg on Thursday October 02 2014, @10:36PM

              by Lagg (105) on Thursday October 02 2014, @10:36PM (#101172) Homepage Journal

              You know. I don't even care about what people think of systemd, but is this what it's going to be from now on? Is this going to be the theme now? I lay out technical discourse and some jackass responds with a character attack or exaggerated at best claim of systemd's philosophy or politics. I'm so tired of this. Parroting falsehoods doesn't make you look like a thinking person or someone with a good argument, it makes you look like a moron. Step up with real arguments or shut the fuck up and go find a tumblr blog to whine on where your political hyperbole will be much better received. Also it's too bad you don't sign your posts because I'm really starting to think the AC that does literally nothing but political shit flinging on everything vaguely related to systemd is the same person. It really wouldn't surprise me because the depths people go when it comes to this are just about rock bottom.

              --
              http://lagg.me [lagg.me] 🗿
              • (Score: 2, Funny) by Horse With Stripes on Thursday October 02 2014, @11:17PM

                by Horse With Stripes (577) on Thursday October 02 2014, @11:17PM (#101184)

                You don't sound happy. Perhaps you need more systemd in your life? Not only can it make your systems happy, but it can make you happy too. Systemd, it's like SunnyD, but for your systems!

              • (Score: 0) by Anonymous Coward on Friday October 03 2014, @12:56AM

                by Anonymous Coward on Friday October 03 2014, @12:56AM (#101213)

                Nobody can "character attack" systemd. It does that by its own lack of technical merit. The best argument against systemd is learning more about it and using it!

                I'm not going to regurgitate the problems with systemd here. They're already well known. In case you're ignorant, you can read all about the severe technical problems plaguing systemd [boycottsystemd.org].

                Anyone who speaks out against systemd is totally right to do so.

      • (Score: 2) by jasassin on Thursday October 02 2014, @10:02PM

        by jasassin (3566) <jasassin@gmail.com> on Thursday October 02 2014, @10:02PM (#101150) Homepage Journal

        Sorry. I failed to notice the facetiousness in your post. I understand what you mean now.

        --
        jasassin@gmail.com GPG Key ID: 0xE6462C68A9A3DB5A
      • (Score: 0) by Anonymous Coward on Thursday October 02 2014, @10:28PM

        by Anonymous Coward on Thursday October 02 2014, @10:28PM (#101170)

        why not just get rid of the shell altogether and have systemd be the shell? Systemd already tries to do everything else. It might as well be the shell, too.

        Yeah, the design geniuses in the "systemd cartel" could definately improve [soylentnews.org] on the humble CLI.

    • (Score: 3, Informative) by Foobar Bazbot on Thursday October 02 2014, @10:03PM

      by Foobar Bazbot (37) on Thursday October 02 2014, @10:03PM (#101151) Journal

      They use dash just as a shell for init. Default user login shell is still bash! This is a "good thing".

      To be clear:

      • The "traditional" GNU/Linux setup has /bin/sh as a symlink to /bin/bash; the default shell for new users is usually /bin/bash.
      • The setup used in recent versions of Ubuntu, Debian, et al. has /bin/sh as a symlink to /bin/dash; the default shell for new users is still /bin/bash.

      (Of course all users who don't chsh -s /bin/zsh deserve what they get anyway, so it wouldn't matter if dash was the default...)

      This means that any shell script starting with #!/bin/sh is executed with dash, not merely those pertaining to init. Shouldn't be a problem, as one should either use #!/bin/bash or restrict oneself to portable/POSIX shell features, but nominally portable scripts tend to acquire a patina of bashisms when maintained in a /bin/sh -> bash environment.

      • (Score: 2) by mth on Thursday October 02 2014, @11:43PM

        by mth (2848) on Thursday October 02 2014, @11:43PM (#101188) Homepage

        The setup used in recent versions of Ubuntu, Debian, et al. has /bin/sh as a symlink to /bin/dash; the default shell for new users is still /bin/bash.

        It's been like that for a while: I remember having to fix some scripts (remove bash-isms or use #!/bin/bash) on a Debian or Ubuntu upgrade that I think was about 8 years ago. So I think most problems in 3rd-party scripts have been fixed by now; it's scripts from Fedora itself and from admins that might stop working.

      • (Score: 3, Interesting) by Magic Oddball on Friday October 03 2014, @10:21PM

        by Magic Oddball (3847) on Friday October 03 2014, @10:21PM (#101530) Journal

        Of course all users who don't chsh -s /bin/zsh deserve what they get anyway

        Where exactly are they supposed to have learned about it? I've used Linux for 6.5 years, use the CLI all the time and solve all of my own system issues, yet it was only the past week or two that I've seen any real references to changing the default shell -- and this is the first time I've actually seen the command to do so. When that's the case for a very highly motivated non-programming user like me, there's virtually no chance of regular people that aren't fascinated with computers knowing about it...

    • (Score: 0) by Anonymous Coward on Thursday October 02 2014, @10:10PM

      by Anonymous Coward on Thursday October 02 2014, @10:10PM (#101157)

      So what will differentiate Fedora from Debian, if this goes through and happens?

      Is it just RPM versus DPKG as the only difference?

      They would both use the Linux kernel. They would both run the same software. They would both use dash as the default shell. They would both be infected with systemd. They both come with GNOME 3 by default.

      The packaging system becomes almost irrelevant at that point, since they're so identical in every other way.

    • (Score: 2) by davester666 on Saturday October 04 2014, @02:22AM

      by davester666 (155) on Saturday October 04 2014, @02:22AM (#101601)

      really? because the next logical shell to switch to is cash

  • (Score: 3, Interesting) by slartibartfastatp on Thursday October 02 2014, @09:19PM

    by slartibartfastatp (588) on Thursday October 02 2014, @09:19PM (#101134) Journal

    "Here's my opinion (for the nothing that it is worth) about changing
    /bin/sh for security: first somebody would need to do a security review
    of dash to "prove" (for some value of "prove") that it is better (for
    some value of better) than bash. After all, bash has been around for a
    long time now, and as far as I can remember, this is the first security
    incident with it that relates to using it as the /bin/sh script
    interpreter. It now has a significant amount of attention to look for
    more of course."

    https://lists.fedoraproject.org/pipermail/devel/2014-October/202877.html [fedoraproject.org]

    • (Score: 2) by frojack on Thursday October 02 2014, @09:58PM

      by frojack (1554) on Thursday October 02 2014, @09:58PM (#101148) Journal

      Well, when the code base is 1 half the size, the job of looking for bugs SHOULD be a lot easier.

      On openBSD, the original sh is smaller than Bash, by about half.*

      Oddly, the dash executable if 20% larger than bash on my openBSD system.

      *note:
      /bin/ksh, is byte for byte identical to /bin/sh, and I expect sh is simply a hard link to ksh in openbsd.

      --
      No, you are mistaken. I've always had this sig.
      • (Score: 0) by Anonymous Coward on Thursday October 02 2014, @10:16PM

        by Anonymous Coward on Thursday October 02 2014, @10:16PM (#101163)

        But does that just push complexity into the realm of the user or the script writer?

        Instead of having the shell offer a safe, standard way to implement some advanced shell scripting functionality, do we instead of thousands of independent (and probably buggy) implementations or hacks when supporting a simpler shell?

        • (Score: 0) by Anonymous Coward on Thursday October 02 2014, @11:18PM

          by Anonymous Coward on Thursday October 02 2014, @11:18PM (#101185)

          FreeBSD does just fine with plain sh. A system shell should be used as glue, not as the end solution. I've installed bash on my systems (my preferred shell), but I've since moved to using strait sh for system scripting about two years ago. Sh is quite capable actually. What about complex tasks? Should you really be using a shell for such tasks?

          • (Score: 2) by frojack on Friday October 03 2014, @12:56AM

            by frojack (1554) on Friday October 03 2014, @12:56AM (#101212) Journal

            Complex tasks are usually just a series of simple tasks.
            Break it down to simple shell tasks.
            That complex stuff that you would do at that level usually centers around file management, backups, mail, etc.
            I could make the case that ANY other programming language approach probably is worse.

            Write some code in your programming language of choice, and all of a sudden the maintenance of that becomes a big problem. Compilers come and go, libraries change over time. Its probably not portable. If there was really a need to do that in a programming language there would probably already be a package to do it.

            A shell script has a LOT of advantage even when you have some fairly complex stuff to do.

            --
            No, you are mistaken. I've always had this sig.
          • (Score: 0) by Anonymous Coward on Friday October 03 2014, @12:59AM

            by Anonymous Coward on Friday October 03 2014, @12:59AM (#101214)

            FreeBSD is also used by competent users and developers. That isn't always the case with Linux, however. Linux shell scripters create absolutely horrid scripts.

            • (Score: 2) by jasassin on Friday October 03 2014, @03:14AM

              by jasassin (3566) <jasassin@gmail.com> on Friday October 03 2014, @03:14AM (#101253) Homepage Journal

              FreeBSD is also used by competent users and developers. That isn't always the case with Linux, however. Linux shell scripters create absolutely horrid scripts.

              As a professional bash coder (yes paid to write backup scripts for banks all around the midwest) for Linux, I take personal offense at your blanket statement. If my bash scripts don't work on a system they weren't designed for, I'm a bad scripter?

              Compared to that sort of mentality Lennart Poettering looks brilliant. Where the fuck do you people come from? I suppose if core team pisses you off, you'll spew something about them after discarding your FreeBSD box, and dust off your trusty Amiga.

              Yeah, you hit a nerve. Fuck you.

              --
              jasassin@gmail.com GPG Key ID: 0xE6462C68A9A3DB5A
              • (Score: 0) by Anonymous Coward on Friday October 03 2014, @11:49AM

                by Anonymous Coward on Friday October 03 2014, @11:49AM (#101341)

                My, my, my... You're a sensitive one, aren't you?

      • (Score: 2) by romlok on Friday October 03 2014, @11:41AM

        by romlok (1241) on Friday October 03 2014, @11:41AM (#101339)

        Oddly, the dash executable if 20% larger than bash on my openBSD system.

        FWIW, on my Debian Testing box:

        $ ls -lh /bin/*sh
        -rwxr-xr-x 1 root root 1006K Aug 21 23:15 /bin/bash
        -rwxr-xr-x 1 root root  115K Jan 10  2014 /bin/dash
        lrwxrwxrwx 1 root root     4 Aug 21 23:15 /bin/rbash -> bash
        lrwxrwxrwx 1 root root     4 Jan 10  2014 /bin/sh -> dash

        • (Score: 0) by Anonymous Coward on Friday October 03 2014, @04:06PM

          by Anonymous Coward on Friday October 03 2014, @04:06PM (#101436)

          Pretty sure the BSDs only include Bash 2.05 or something, the 'original' release you'd only have if you used linux from the 90s or maybe very early '00s depending on your distro.

          Bash 3/4 is an entirely different beast with a lot more crap added in.

          Personally I would've stuck with 2, but at some point I ran into scripts which only ran on bash3+, and it was less of a hassle to just install and forget about it than keep two copies around.

          Might finally have motivation to look for another shell now however.

          • (Score: 2) by frojack on Friday October 03 2014, @07:42PM

            by frojack (1554) on Friday October 03 2014, @07:42PM (#101502) Journal

            Openbsd 5.5 package is 4.2.45. It is not installed by default.

            --
            No, you are mistaken. I've always had this sig.
  • (Score: 3, Insightful) by zocalo on Thursday October 02 2014, @09:29PM

    by zocalo (302) on Thursday October 02 2014, @09:29PM (#101137)
    Several distros started dumping "sh" as the core shell and defaulting to Bash some time ago now, and I suspect that will have resulted in at least a few people writing Bash compliant, but non-POSIX compliant scripts that might break if this goes ahead. Probably the same people that thought it would be a good idea to use an OS shell as a CGI script processor, come to think of it. Sure, it's convenient to use Bash over plain SH, as Bash can do in one step what can take several in more limited shells, but it's also lazy and comes at the expense of portability, effectively making Bash a dependency for the script. I certainly don't have a problem with ShellShock acting as a wakeup call to remind people of one of the reasons why *Nix traditionally used a basic shell for the system and let users chose their preferred full-fat shell for themselves and only ran it with that user's permissions, and if a people learn a few lessons about writing shell code as a result, then that's a nice bonus.
    --
    UNIX? They're not even circumcised! Savages!
    • (Score: 2) by bob_super on Thursday October 02 2014, @09:46PM

      by bob_super (1357) on Thursday October 02 2014, @09:46PM (#101145)

      > a few lessons about writing shell code

      Is there an iOS 8 app for that?

  • (Score: 5, Interesting) by Lagg on Thursday October 02 2014, @09:29PM

    by Lagg (105) on Thursday October 02 2014, @09:29PM (#101138) Homepage Journal

    I forgot to include a few posts by Lennart in the summary because let's be honest you guys want to see what he says about this stuff and though I'm glad to see that he is considering things like keeping the core package set small it worries me a bit that he doesn't know how attack surfaces work in assuming that dash adds a larger attack surface because it runs alongside bash which isn't very likely unless it was somehow in the same binary, also he's forgetting that ash itself has been around for quite some time. He's also implying that bash's extra builtin crap are "powerful". I have not yet found a single builtin that a coreutil or similar standard core package can't do. Even though I'm trying to stay neutral in this whole systemd thing I just get hit by one discouraging thing after another. Really starts to test one's resolve. Especially with how he says that it'd take a lot of work to fix things to use a POSIX shell, doubtful. I honestly rarely see a #!/bin/bash script and when I do it's because it uses stupid syntactic sugar or something along those lines. He's not doing much to disprove the accusations of him trying to speak for sysadmins while not actually being one when he does stuff like this.

    https://lists.fedoraproject.org/pipermail/devel/2014-October/202879.html [fedoraproject.org]
    https://lists.fedoraproject.org/pipermail/devel/2014-October/202912.html [fedoraproject.org]

    --
    http://lagg.me [lagg.me] 🗿
    • (Score: 0) by Anonymous Coward on Thursday October 02 2014, @09:57PM

      by Anonymous Coward on Thursday October 02 2014, @09:57PM (#101147)

      Unbelievable. I laugh out loud and nearly piss my pants whenever I read anything from that guy. Then I remember that people actually take him and his crap seriously, for whatever reason. Unbelievable.

    • (Score: 0) by Anonymous Coward on Thursday October 02 2014, @10:37PM

      by Anonymous Coward on Thursday October 02 2014, @10:37PM (#101173)

      I am pretty sure that shell is one of the most common languages used by admins to do things, and that's where we should be really careful to not break things.

      Seems the guy has a sense of humor and afterall, if systemd is just a bad joke then the design decisions begin to make perfect sense.

    • (Score: 2, Insightful) by utoddl on Thursday October 02 2014, @11:50PM

      by utoddl (819) on Thursday October 02 2014, @11:50PM (#101190) Homepage

      Sorry I can't find my Lennart bashing pants today, but I read both of those linked emails, and he raises valid points in both.

      • (Score: 2) by velex on Friday October 03 2014, @03:56PM

        by velex (2068) on Friday October 03 2014, @03:56PM (#101433) Journal

        Some of his points are valid in a general sense, but I smell drama. He's coming to the rescue of the poor developers who can't be bothered with using the proper shebang line in their scripts.

        My scripts always have bash in the shebang line when I want to use bash features. Anything else is wrong.

        From https://lwn.net/Articles/343924/ [lwn.net]:

        Ubuntu made this switch three years ago, with the release of Ubuntu 6.10. Note that the default login shell remains bash, only the default /bin/sh used in shell scripts has been changed.

        I'm assuming that's what Rahul is proposing.

        From Poettering:

        I am more concerned about code written by admins and users. I kinda
        hope that we don't ship too massive shell programs in Fedora, (well,
        except of course autoconf scripts...), but I am pretty sure that shell
        is one of the most common languages used by admins to do things, and
        that's where we should be really careful to not break things.

        Then he says in another post:

        You have to maintain + security-fix more code,
        since you have two packages to look after (Yes, by adding dash to the
        default stack you just put the extra burden on Fedora to quickly
        update two packages instead of just one in case of a security
        problem).

        However, in the original post, which he even quotes in his reply:

        FWIW, both dash and mksh is
        already packaged in Fedora.

        So, what is he saying here? Is he saying that dash isn't currently maintained well? Is he saying that if I'm a Fedora user who uses dash that I should consider another distro?

        Also note the subtle trick he uses here. He's attempting to confuse the reader by implying that a security problem in bash implies a security problem in an unrelated package or vice-versa.

        He goes on to write:

        You create a *lot* of porting work for all those
        scripts.

        WTF! This coming from the guy who wants to replace udev, dbus, the entire init system, and the kitchen sink with a monolithic piece of software that writes binary logs and has dependencies on a desktop environment?!

        That isn't porting work?!

        You *break* all scripts that currently reference /bin/sh in
        the shebang-line but use bashisms. Also, many of the bashisms are
        actually pretty useful, hence you replace a more powerful language by
        a crappier one. You create an entirely new problem for our users, by
        making them *think* whether they actually mean /bin/sh or
        /bin/bash. You confuse users by disallowing certain expressions in
        scripts that work fine if you type them on the interactive shell.

        Look at what you meanies are doing to the poor users!

        I'm fscking sorry, but if you're writing scripts and using bash-isms, put bash in your shebang line! Take responsibility for being cognizant enough of what you're doing! Another solution is to do a quick find and sed to replace the shebang line on existing scripts with the correct interpreter. Please, please don't write code you don't understand.

        Poettering's kind of thinking is why we can't have nice things. This kind of thinking is why modern computer systems have grown unreliable and have bug after bug.

        I also read this bit on Wikipedia [wikipedia.org] that clued me into what's probably really at work:

        The reason for using dash is faster shell script execution,[5] especially during startup of the operating system

        Isn't that the same reason we're all supposed to jump on board with systemd?

        What's clearly happening here is that Poettering sees this as an attack on systemd and is using misdirection, fallacies, and a white-knight mentality (oh, the poor users!) to prevent any alternative boot scheme to gain credibility than systemd.

        Disclaimer: I've never used dash. I've also started rolling a new Linux from Scratch for E19 (minus pulseaudio, thankyouverymuch, even if I have to hack some E19 code to disable sound), and I've been learning how rusty my bash skills have become.

    • (Score: 1) by http on Friday October 03 2014, @01:55AM

      by http (1920) on Friday October 03 2014, @01:55AM (#101232)

      You noted,

      it worries me a bit that he doesn't know how attack surfaces work

      I cannot believe he does not know how attack surfaces work. It stands to reason it being glossed over by design.

      --
      I browse at -1 when I have mod points. It's unsettling.
    • (Score: 3, Interesting) by zocalo on Friday October 03 2014, @02:02AM

      by zocalo (302) on Friday October 03 2014, @02:02AM (#101235)
      Having written a *lot* of Posix compliant shell scripts, I'll go out on a limb and say that there are *no* Bash features that can't be implemented using standard Posix SH, coreutils and as a last resort some sed/awk, but some of those features can require the script to jump through several hoops to achieve something Bash can do with a single variable or built-in. Those hoops can often be quite ugly, or less than intuitive to someone who doesn't know the particular "trick" being used, so Lennart does have a point of sorts, but it comes back to the point I made above about being lazy - it might be a ballache at times, but if you want portability in a shell script you code to what POSIX allows and don't assume that Bash will be available. Then again, he does seem to have some kind of fundamental difference of opinion with the whole concept of lots of individual simple tools being combined into more powerful ones, so the "throwing in everything but the kitchen sink is good" mentality shouldn't really be a surprise here.

      Another issue you touch on is that many distros simply symlink "sh" to the Bash binary, so people might well be putting "#!/bin/sh" at the start of their script, but in practice it's not difference from "#!/bin/bash". I suspect that many people scripting will be using Bash features by default, whether they realise it or not, and some of those are probably under the illusion that because their first line is "#!/bin/sh" and the script runs it is going to be portable, coupled with the ubiquity of Bash meaning that they are less likely to experience a situation where they can realise that is not actually the case.
      --
      UNIX? They're not even circumcised! Savages!
      • (Score: 2) by jasassin on Friday October 03 2014, @03:57AM

        by jasassin (3566) <jasassin@gmail.com> on Friday October 03 2014, @03:57AM (#101263) Homepage Journal

        Please mod up. This guy knows what he's talking about.

        --
        jasassin@gmail.com GPG Key ID: 0xE6462C68A9A3DB5A
        • (Score: 2) by Lagg on Friday October 03 2014, @06:38AM

          by Lagg (105) on Friday October 03 2014, @06:38AM (#101286) Homepage Journal

          Not really, when argv[0] has a basename of sh bash starts in posix mode. Like most GNU stuff that has a posix or other spec conformance mode the crap still leaks through to an extent but to say that there's no difference in practice is just stupid.

          --
          http://lagg.me [lagg.me] 🗿
          • (Score: 2) by zocalo on Friday October 03 2014, @04:28PM

            by zocalo (302) on Friday October 03 2014, @04:28PM (#101445)
            You misunderstand me, I think. Yes, Bash starts in Posix mode (which GNU's own manual states only makes the shell "conform more closely to the POSIX standard") but if you look at the list of differences [gnu.org] that makes, there's still a lot of room for using Bash specific functionality that isn't present in the sh spec. It was that specific functionality I was referring to rather than stuff like how expansion and redirection are handled, e.g. the difference between using (say) "/bin/dash" and "/bin/bash" as the system shell. Bash's Posix mode definitely helps with portability, but it's still easy to come unstuck if you are doing anything esoteric, although to be fair the most common portability issues are more likely to be through use of GNU shell tool specific command line options than anything internal to bash itself.
            --
            UNIX? They're not even circumcised! Savages!
    • (Score: 2) by tangomargarine on Friday October 03 2014, @02:41PM

      by tangomargarine (667) on Friday October 03 2014, @02:41PM (#101396)

      I forgot to include a few posts by Lennart in the summary because let's be honest you guys want to see what he says about this stuff and though I'm glad to see that he is considering things like keeping the core package set small it worries me a bit that he doesn't know how attack surfaces work in assuming that dash adds a larger attack surface because it runs alongside bash which isn't very likely unless it was somehow in the same binary, also he's forgetting that ash itself has been around for quite some time.

      Oh God! Somebody get me a tourniquet; I'm bleeding from the eyes! We can't resist run-on sentences of this magnitude! :)

      --
      "Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
  • (Score: 2, Interesting) by gallondr00nk on Thursday October 02 2014, @09:33PM

    by gallondr00nk (392) on Thursday October 02 2014, @09:33PM (#101139)

    All the BSDs as far as I'm aware come with the original sh as the default shell, and you have to build or install bash if you want it. In my opinion it makes sense - you use a simple, tight shell for all the important stuff.

    The idea is if you want bash (or another shell) install it on a toor account or use it on another account with sudo.

    • (Score: 2) by frojack on Thursday October 02 2014, @10:15PM

      by frojack (1554) on Thursday October 02 2014, @10:15PM (#101161) Journal

      But in the Linux world the closest you can come to the original sh is ksh (and it is tiny by comparison to bash).
      In Openbsd, ksh and sh are the same executable.

      But realistically, so much of the linux scripts start with #!/bin/bash that the system shell wouldn't end up changing much. It would still launch bash.

      --
      No, you are mistaken. I've always had this sig.
  • (Score: -1, Offtopic) by Anonymous Coward on Thursday October 02 2014, @10:13PM

    by Anonymous Coward on Thursday October 02 2014, @10:13PM (#101159)

    Thank you for bringing this to our attention, Lagg.

    This is the kind of news I come to SN to read.

    I don't really care about politics or which "innocent" gangsta got shot to death after attacking police today. That shit is irrelevant.

    I do care about tech stories like these that will potentially affect me and every other Linux user out there. This stuff is important.

    Thank you for your submission, Lagg. This is exactly what I want to see when I come here!

    • (Score: 3, Insightful) by bob_super on Thursday October 02 2014, @10:38PM

      by bob_super (1357) on Thursday October 02 2014, @10:38PM (#101174)

      > me and every other Linux user out there. This stuff is important.

      oblig xkcd [xkcd.com]

      • (Score: 0) by Anonymous Coward on Friday October 03 2014, @01:01AM

        by Anonymous Coward on Friday October 03 2014, @01:01AM (#101215)

        Why is that stupid comment and that stupid comic marked as "Insightful"? I'm still using Debian on a laptop from 2002. I can watch full screen YouTube videos using their Flash player just fine. I've been able to watch do this since YouTube was launched. That comic was never correct, and it's just plain dumb today.

        • (Score: 2) by bob_super on Friday October 03 2014, @04:46AM

          by bob_super (1357) on Friday October 03 2014, @04:46AM (#101269)

          That whooshing sound was sadly not the Concorde...

        • (Score: 0) by Anonymous Coward on Friday October 03 2014, @07:16AM

          by Anonymous Coward on Friday October 03 2014, @07:16AM (#101296)

          Using Flash player is plain stupid.

    • (Score: 2) by E_NOENT on Thursday October 02 2014, @11:59PM

      by E_NOENT (630) on Thursday October 02 2014, @11:59PM (#101192) Journal

      Yes, this was a good submission, so +1 from me, fwiw.

      I even enjoy the systemd bashing, however irrelevant it may appear.

      "Is this a thing now?" Well, System D bashing is important for us as soylentils because of the following relationship:

      "Beta is to Slashdot, what SystemD is to Linux"

      --
      I'm not in the business... I *am* the business.
      • (Score: 0) by Anonymous Coward on Friday October 03 2014, @01:04AM

        by Anonymous Coward on Friday October 03 2014, @01:04AM (#101216)

        There's no systemd "bashing" going on. There's merely discussion of its feature set and architectural philosophy. But given how fucking idiotic all of its functionality and philosophy is, even honest technical discussion can appear as though it's being bashed. It's not possible to say anything legitimately good about it, because it's so awful. Just about the only thing it's good at is pissing people off, dividing communities and destroying Linux distributions.

  • (Score: 0) by Anonymous Coward on Thursday October 02 2014, @10:43PM

    by Anonymous Coward on Thursday October 02 2014, @10:43PM (#101176)

    @I'd like to see Arch for example start using dash in the core install since even with shell script heavy systems - like those that use sysvinit

    arch is systemd. it crashed my laptop 3 times just this week. whee!

    • (Score: 0) by Anonymous Coward on Thursday October 02 2014, @10:50PM

      by Anonymous Coward on Thursday October 02 2014, @10:50PM (#101178)

      Other than havin to reboot, I've never had a problem with systemd on my laptop. It's on servers, especially with a rolling release distro where we apply upgrades selectively that accidentially upgrading the new systemd dependency / victim of the week fucks things up. We reboot servers for kernel upgrades, if the init system starts erroring on a library upgrade then the init system is broken by design.

      • (Score: -1, Flamebait) by Anonymous Coward on Friday October 03 2014, @12:27AM

        by Anonymous Coward on Friday October 03 2014, @12:27AM (#101203)

        FUCK YOU.

        That's YOU.

        It doesn't matter if it works for you.

        It doesn't work for him.

        You disproved nothing you dip shit fuck.

        • (Score: 1, Insightful) by Anonymous Coward on Friday October 03 2014, @01:07AM

          by Anonymous Coward on Friday October 03 2014, @01:07AM (#101218)

          The parent isn't "flamebait".

          Saying "But it works for me!" is an absolutely useless thing to say in any discussion of software bugs or malware (like systemd).

  • (Score: 2) by HiThere on Friday October 03 2014, @12:44AM

    by HiThere (866) Subscriber Badge on Friday October 03 2014, @12:44AM (#101209) Journal

    Sorry, but these days when I read the Red Hat is in favor of something I remember the it has pushed mono, gnome3, and systemd. So I'm just a bit sceptical of anything they suggest.

    --
    Javascript is what you use to allow unknown third parties to run software you have no idea about on your computer.
    • (Score: 0) by Anonymous Coward on Friday October 03 2014, @01:10AM

      by Anonymous Coward on Friday October 03 2014, @01:10AM (#101220)

      You're absolutely right. What makes it worse is that Debian and Ubuntu are both caving, and forcing this same shitty software on their users. It'd be one thing if it was just Fedora infected with systemd. But it's spreading so far now that only Gentoo and Slackware are remaining as usable Linux distros.

    • (Score: 0) by Anonymous Coward on Friday October 03 2014, @01:40AM

      by Anonymous Coward on Friday October 03 2014, @01:40AM (#101227)
      They get paid to support their crap.

      If you look at it from that perspective many of their decisions make a lot more sense.
  • (Score: 1) by invictusvoyd on Friday October 03 2014, @01:28AM

    by invictusvoyd (4764) on Friday October 03 2014, @01:28AM (#101223)

    will making dash the default shell be any safer? going by that philosophy the entire fedora distro should lose a couple of hundred pounds to be "safer"

  • (Score: 1) by Nesh on Friday October 03 2014, @09:09AM

    by Nesh (269) on Friday October 03 2014, @09:09AM (#101318)

    Debian linked /bin/sh to dash in Squeeze (v6 2011-02-06), Ubuntu way back in Edgy Eft (6.10 - 2006-10-26).
    Of course bash is still available and is still set as default user shell.
    But in Ubuntu /bin/sh has been a symlink to dash since 2006.

    • (Score: 2) by isostatic on Friday October 03 2014, @11:06AM

      by isostatic (365) on Friday October 03 2014, @11:06AM (#101334) Journal

      Some packages insist that /bin/sh needs to be bash. Oracle XE from memory uses /bin/sh for it's scripts, but uses bashisms.

  • (Score: 0) by Anonymous Coward on Friday October 03 2014, @03:31PM

    by Anonymous Coward on Friday October 03 2014, @03:31PM (#101419)

    Debian already uses Dash as default /bin/sh because /bin/bash was deemed too slow and bloated. That change happened years ago.

    When exactly?

    dash (0.5.5.1-2.2) unstable; urgency=low

        [ Luk Claes ]
        * Non-maintainer upload with maintainer's permission.
        * Change the default for the system shell to dash.
        * Ship /bin/sh in the package and fix the diversion handling
            for it to make sure /bin/sh is always present.
        * Set debconf priority to high when upgrading from an existing
            system.
        * Add versioned dpkg dependency for dpkg-divert --listpackage.
        * Add NEWS file about changing /bin/sh.
        * Adjusted the debconf template accordingly.
        * Make dash Priority: Required

        [ Raphael Geissert ]
        * Make dash Essential: yes

      -- Luk Claes Wed, 22 Jul 2009 20:17:31 +0200

    Over 5 years ago. On default installed Debian, that bash hole was not an issue.