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

时间:2017-03-18 12:29:42

标签: macos homebrew zsh oh-my-zsh zshrc

我的问题是,在运行HomebrewZshOh My Zsh以及配置.zshrc文件方面,运行两个管理员帐户以进行开发会有什么好方法?

我的理由是,我最近开始了一份新工作,并希望将我的Mac用于两个帐户,这两个帐户都是管理员,我将需要devtools这两个帐户以保持我的工作生活/ dev和个人生活/ dev干净利落地分开。我刚刚删除了我的硬盘并干净地安装了OS X 10.12.3并创建了两个管理员帐户。

我已经设置了它,但是每当我切换帐户并运行终端时,一直都会遇到权限错误,通常是zsh完成特有的。

我的步骤:

  1. 在两个用户/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"上安装Homebrew。
  2. 使用brew brew install zsh安装zsh并更改为chsh -s /bin/zsh
  3. 通过sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"安装我的zsh与卷曲。
  4. 运行sudo chown -R $(whoami):admin /usr/local
  5. 然后我尝试了一堆乱七八糟的东西,我不会补充,因为我相信它们可能只会让其他人走上黑暗的道路。

2 个答案:

答案 0 :(得分:1)

虽然这个步骤可以安全地以root用户身份运行,但我仍然建议以非root用户身份运行安装,以防止在shell运行时root切换shell出现灾难性问题。永远不应该更改超级用户shell。

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

步骤1:确保umask不比022更严格。如果没有将其设置为022。

$ umask 022

步骤2:使用将安装共享oh-my-zsh的目标路径设置和导出ZSH。

export ZSH=/usr/local/.zsh/oh-my-zsh

步骤3:创建父目录并使其由安装脚本的用户拥有。

$ sudo mkdir /usr/local/.zsh
$ sudo chown ${USER} /usr/local/.zsh

步骤4:运行安装程序。

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

步骤5:将安装路径的所有权更改回root。

$ sudo chown -R root /usr/local/.zsh

步骤6:在${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

答案 1 :(得分:0)

虽然@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作为默认shell重新打开:

以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)"

这为我停止了所有自动完成和权限错误。我认为这有点矫枉过正,并且有一种方法可以使用符号链接,但这种方式很简单。