在Mac OS X上,对于多个管理员用户,Brew + Zsh + Oh My Zsh的正确设置是什么?

7
我的问题是,在运行Homebrew、Zsh和Oh My Zsh并配置.zshrc文件方面,有什么好的方法可以运行两个管理员帐户进行开发?
我这样做的原因是我最近开始了一份新工作,想要使用我的Mac带有两个帐户,两个帐户都将是管理员,并且我需要devtools,以便将我的工作生活/ dev和个人生活/ dev清晰地分开。我刚刚抹掉了硬盘并干净地安装了OS X 10.12.3,并创建了两个管理员帐户。
我已经尝试设置它,但是每当我切换帐户并运行终端时,我总是遇到权限错误,通常是特定于zsh完成的。
我的步骤:
1. 在两个用户上安装Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"。 2. 用brew安装zsh brew install zsh 并更改为它 chsh -s /bin/zsh。 3. 使用curl安装oh my zsh sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"。 4. 运行sudo chown -R $(whoami):admin /usr/local。
然后我尝试了很多事情,我不会添加,因为我认为它们可能只会让其他人走向黑暗的道路。

  1. 您不需要安装 ruby。Sierra 已经自带了它。
  2. 您不需要安装 zsh。同样,Sierra 已经自带了它。
  3. 在运行安装脚本之前,请先执行 export ZSH=<destinationpath>
  4. 允许可执行脚本的全局执行权限,允许可读文件的全局读取权限,并允许目录的读取和执行权限。
- alvits
2个回答

4

虽然以root身份运行此步骤是安全的,但我仍建议以非根用户身份运行安装程序,以防止在shell未工作时发生根切换shell的灾难性问题。超级用户shell永远不应更改。

以下是为多个用户安装oh-my-zsh的正确方法。

步骤1: 确保umask不严于022。如果未设置,请将其设置为022。

$ umask 022

步骤二:设置并导出ZSH,指定共享oh-my-zsh安装的目标路径。
export ZSH=/usr/local/.zsh/oh-my-zsh

步骤 3: 创建父目录并使其归安装脚本的用户所有。
$ sudo mkdir /usr/local/.zsh
$ sudo chown ${USER} /usr/local/.zsh

步骤四:运行安装程序。
$ bash -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

步骤五:将安装路径的所有权更改回根用户。
$ sudo chown -R root /usr/local/.zsh

第六步:更新${ZSH}/templates/zshrc.zsh-template中ZSH的位置。
$ sudo sed -i 's|export ZSH=.*|export ZSH='${ZSH}'|' ${ZSH}/templates/zshrc.zsh-template

(可选) 步骤7:禁止自动更新。由于安装现在归属于root,因此建议这样做。

$ sudo sed -i 's/# DISABLE_AUTO_UPDATE="true"/DISABLE_AUTO_UPDATE="true"/' ${ZSH}/templates/zshrc.zsh-template

从这里开始,每个用户都可以将${ZSH}/templates/zshrc.zsh-template复制到~/.zshrc。

@joshuatvernon - 只需跳过第6步。将模板复制到用户时,只需通过 vim 修改文件即可。 - alvits
@joshuatvernon - 不要。你应该将它复制为 ~/.zshrc - alvits
@joshuatvernon - 你可以这样做。但是,如果你使用了限制性权限安装它,那么在另一个用户上使用它时会有问题。 - alvits
我只需执行“brew install zsh”进行安装,它可以在两个用户上正常工作。 - joshuatvernon
第六步是做什么的?用export ZSH=.*替换为export ZSH='${ZSH}'?我认为你需要一个绝对或相对路径,而不是$ZSH - Timo
显示剩余11条评论

2

虽然@alvits的回答可能是正确的,但我无法使其对我起作用。不过,我通过以下方式成功实现了它。

安装Homebrew(检查https://brew.sh/以获取最新命令):

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

使用Homebrew安装Zsh:

brew install zsh

关闭终端并重新打开默认为ZSH的终端:

以root用户身份安装Oh My Zsh

sudo su

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

关闭终端以退出root用户模式。

将Oh My Zsh安装为每个管理员(因此在两个用户上都安装):

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

这对我来说停止了所有自动完成和权限错误。我认为这有些过度,可能可以通过符号链接的方式解决,但这种方法很简单。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接