Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Any particular reason to prefer one shell over another?

Zsh is a little more intuitive with tab-completion and can even display info on both sides of the prompt, ie:
Code:
user@computer-hostname$ somecommand -s            [Battery=63% /User/Name/Documents/]

It's VERY customizable, you can even check out oh-my-zsh for open source plugins and themes.

Some also say it's faster than Bash, but I've never really noticed.

It's really up to the user to decide which shell is better for for their needs. Try it out, you might like it.
 
Zsh is a little more intuitive with tab-completion and can even display info on both sides of the prompt, ie:
Code:
user@computer-hostname$ somecommand -s            [Battery=63% /User/Name/Documents/]

It's VERY customizable, you can even check out oh-my-zsh for open source plugins and themes.

Some also say it's faster than Bash, but I've never really noticed.

It's really up to the user to decide which shell is better for for their needs. Try it out, you might like it.

I'm a ksh fan, but I have always liked zsh's path expansion. The tab completion is better than bash too IMHO.
 
Here's another goodie. I've packaged Cameron Kaiser's (Tenfourfox blog) compiled bash and sh into an Installer package. Just install it like a normal package. It also backs up your current bash and sh binaries, unless they've already been backed up. It will work on any 10.4 or higher system. It is provided as is and I am not responsible if it breaks your machine. I've installed in on my machines and everything is working correctly.

YOU. ARE. AWESOME.

This worked great on my G4 Gigabit Ethernet and iMac G5 ALS under Leopard and an old Grape tray-loader G3 and TiBook G4 running 10.4. I also patched my work machine, an iMac 2.5GHz i5 running Lion. Totally flawless install on all four.
 
Ran into a problem after running the installer posted here.

I went to install the newly released version of FinderPop 2.5.7. As part of the install, the prefpane asks for your administrator name and password to make some permission changes to resources stored in the pref pane package. As part of this, it calls bin/sh to execute a shell script. But no go. Even with my admin user name and password, I get an error telling me I don't have permission to change stuff.

here's the relevant console bit:

9/29/14 9:26:53 PM authexec[281] executing /bin/sh
9/29/14 9:26:53 PM System Preferences[269] FinderPop::chgrp_fp_daemon '/Users/mws/Library/PreferencePanes/FinderPop.prefPane/Contents/Resources/finderpop-daemon.app/Contents/MacOS/finderpop-daemon' -> st_gid 20 != PROCMOD_GROUP_ID (9) or bad st_mode 81ed
9/29/14 9:26:53 PM System Preferences[269] ### FinderPop: chgrp_fp_daemon status -8
9/29/14 9:26:53 PM [0x0-0x29029].com.apple.systempreferences[269] chgrp:
9/29/14 9:26:53 PM [0x0-0x29029].com.apple.systempreferences[269] you are not a member of group procmod


So, how do I fix this? How do I roll back to the previous version of bin/sh if I have to?
 
Run "ls -lah /bin | grep sh" in Terminal and post the output.

Here is an updated version of the patched bash available from the Tenfourfox blog. As before, there is no warranty and it is provided as it. It can and should be installed right over my previous package.
 
Last edited:
Run "ls -lah /bin | grep sh" in Terminal and post the output.

Here is an updated version of the patched bash available from the Tenfourfox blog. As before, there is no warranty and it is provided as it. It can and should be installed right over my previous package.

Per your request:

-rwxr-xr-x 1 root wheel 2.5M Sep 29 22:10 bash
-rw-r--r-- 1 root wheel 1.2M Jun 17 2009 bash_old
-rwxr-xr-x 2 root wheel 597K Sep 23 2007 csh
-r-xr-xr-x 1 root wheel 2.0M Sep 24 2007 ksh
-r-xr-xr-x 1 root wheel 2.5M Sep 29 22:10 sh
-r--r--r-- 1 root wheel 1.2M Jun 17 2009 sh_old
-rwxr-xr-x 2 root wheel 597K Sep 23 2007 tcsh
-rwxr-xr-x 2 root wheel 959K Sep 23 2007 zsh
-rwxr-xr-x 2 root wheel 959K Sep 23 2007 zsh-4.3.4
 
Everything looks correct. That program may not like the newer version of sh. You can downgrade sh with the following command:
Code:
sudo cp /bin/sh_old /bin/sh

I do suggest you rerun the Bash Patch Installer package to update to the newer version once finished with the other program.
 
Everything looks correct. That program may not like the newer version of sh. You can downgrade sh with the following command:
Code:
sudo cp /bin/sh_old /bin/sh

I do suggest you rerun the Bash Patch Installer package to update to the newer version once finished with the other program.

Yup. That did it. For some reason the FinderPop pref pane does NOT like the patched version of sh. So, your solution is the way to go. Talk about a pain in the ass.

----------

Intell, thank you for your help. I never would have solved this on my own.

And your installer package is a great time saver. Thanks for updating it to the latest & greatest!
 

Do NOT use this patch unless you want to risk the stability of your system! The bash on OS X is 3.2, the blog updates it to 4.3, which is a major new version with new features (and also without Apple-specific fixes) — there is no way to know how it messes up the standard scripts included in OS X. Rather, use the Apple's 3.2 version + patches.
 
Do NOT use this patch unless you want to risk the stability of your system! The bash on OS X is 3.2, the blog updates it to 4.3, which is a major new version with new features (and also without Apple-specific fixes) — there is no way to know how it messes up the standard scripts included in OS X. Rather, use the Apple's 3.2 version + patches.

Interesting post. I used the TenFourFox Blog solution and haven't experienced a single issue with OS X. Everything functions exactly how it did before except the bash bug is fixed. What do you think it'll mess up exactly? Is there anything specifically you know that this solution will break in OS X?
 
Interesting post. I used the TenFourFox Blog solution and haven't experienced a single issue with OS X. Everything functions exactly how it did before except the bash bug is fixed. What do you think it'll mess up exactly? Is there anything specifically you know that this solution will break in OS X?

No, I don't have anything specific. But the default OS X does not run a modern bash, it even does not run a standard bash, and I think it can be quite dangerous to update it while not knowing what exactly can be affected. Its like putting an aftermarket part on your car, which seems to look the same, but was never tested or in any way guaranteed to work the same.

I also think that even if there are potential incompatibilities, they are not likely to affect individual users, but they might very well be a problem if you are running a server.
 
No, I don't have anything specific. But the default OS X does not run a modern bash, it even does not run a standard bash, and I think it can be quite dangerous to update it while not knowing what exactly can be affected. Its like putting an aftermarket part on your car, which seems to look the same, but was never tested or in any way guaranteed to work the same.

I also think that even if there are potential incompatibilities, they are not likely to affect individual users, but they might very well be a problem if you are running a server.

I haven't had any problems as yet. Until you come up with some specifics, I'm going to trust the man writiing the TenFourFox blog. He's a pretty smart fellow.
 
I don't think the difference in versions should change much, if anything, unless Apple is doing really wonky things with Bash scripts. If the Bash maintainers made radical changes between versions that broke shell script compatibility, they would have a lot of very angry Linux users throwing things at them.
 
I haven't had any problems as yet. Until you come up with some specifics, I'm going to trust the man writiing the TenFourFox blog. He's a pretty smart fellow.

So you don't see any problems with replacing a critical core system tool with a potentially incompatible version? Its your choice of course, as odd as it might seem to me.

For any other user on an older system, who wants to take a safer route, this is the proper way to go:

http://www.macissues.com/2014/09/25...x-the-shell-shock-bash-vulnerability-in-os-x/
 
So you don't see any problems with replacing a critical core system tool with a potentially incompatible version? Its your choice of course, as odd as it might seem to me.

For any other user on an older system, who wants to take a safer route, this is the proper way to go:

http://www.macissues.com/2014/09/25...x-the-shell-shock-bash-vulnerability-in-os-x/

Here's the deal: Cameron Kaiser knows his way around Unix, Linux, and the PowerPC architecture. He's a command line master, and the developed of the last major browser to support PowerPC. If he says it's safe to use, then I trust him. He's earned my trust. Obviously, things can happen and might have unintended consequences; his solution comes with no warranty.

But at this point, using 10+ year old machines with an operating system that's 7 years old, we need to take whatever support patches we can get.
 
So you don't see any problems with replacing a critical core system tool with a potentially incompatible version? Its your choice of course, as odd as it might seem to me.

For any other user on an older system, who wants to take a safer route, this is the proper way to go:

http://www.macissues.com/2014/09/25...x-the-shell-shock-bash-vulnerability-in-os-x/

The link you posted is pretty much the same solution as to what is on the TenFourFox Blog. And I haven't noticed a single bit of difference. I think you're talking nonsense, although I'd love for you to prove me wrong.
 
The link you posted is pretty much the same solution as to what is on the TenFourFox Blog. And I haven't noticed a single bit of difference. I think you're talking nonsense, although I'd love for you to prove me wrong.

I must have misread something on the TFF blog then. I though the blog's solution is to install bash 4.3.27 However, OS X uses a custom version of bash 3.2, and the link I have posted shows how to patch that specific version.

Again, I am certainly not questioning the credibility of the author of the blog, nor am I aware of any attested problem with bash 4.3 on OS X. I am simply saying that OS X has been deployed with an old and long obsolete version of bash, which is 3.2. For the reference, bash 4 was released in early 2009 and has since become a standard in Linux world. We are talking about 6 years development history between those versions. Not to mention that the Apple's bash 3.2 has received some OS X-specific patches (I didn't look into the repo, so I can't comment on the specific changes in the code).

To reiterate — personally ‚ I would avoid upgrading individual bits of my core system with version that have not been thoughtfully tested to be compatible with it. As such, I am not aware of any backward-incompatability in bash, but there might be some idiosyncratic behaviour in 3.2 (e.g., a bug, undocumented feature etc.) which is used (intentionally or not) by some system script. By installing a non-standard version of a critical system tool, you are risking to expose possible problems like these.

Then again, there might be no issues at all. My point — why take the risk in the first place?
 
Then again, there might be no issues at all. My point — why take the risk in the first place?

Dude, I run a 10 year old machine with a 7 year old OS. I'm taking risks every single time I turn the damn thing on. :p
 
Ars technica reports Apple released a bash fix for Lion 10.7 and newer. Seems Snow Leopard users are now getting in the same boat as the rest of us--no support from Apple.
 
Ars technica reports Apple released a bash fix for Lion 10.7 and newer. Seems Snow Leopard users are now getting in the same boat as the rest of us--no support from Apple.

"Software update" is showing me that my copy of 10.9 is up to date, so it seems to me as though they haven't released it yet.
 
Error

While the steps posted above seem out of action at the moment, here's how you can build and replace your own. All you need is an internet connection and Xcode 3.1 or later to be installed. Just copy and paste the lines one at a time and you'll be all done. If at any point you get an error, stop and post the error. Failure to stop could lead to problems. Will work on 10.5.8 through 10.9.4.

Code:
cd /tmp/
mkdir bash-fix
cd bash-fix
curl -k https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf -
cd bash-92/bash-3.2
curl -k https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052 | patch -p0
cd ..
xcodebuild
sudo cp /bin/bash /bin/bash.old
sudo cp /bin/sh /bin/sh.old
build/Release/bash --version # GNU bash, version 3.2.52(1)-release
build/Release/sh --version   # GNU bash, version 3.2.52(1)-release
sudo cp build/Release/bash /bin
sudo cp build/Release/sh /bin
sudo chmod a-x /bin/bash.old /bin/sh.old
m#@$-mac-power-mac-g5-2:bash-92:root#sudo cp build/Release/bash /bin
error:cp: /bin/bash.old: Permission denied
Garret Stand :apple:
 
m#@$-mac-power-mac-g5-2:bash-92:root#sudo cp build/Release/bash /bin
error:cp: /bin/bash.old: Permission denied
Garret Stand :apple:

Just use the latest Installer package in post #55. Those steps are now out if date and they only patch one of the many exploits.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.