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

jos*_*non 5 macos homebrew zsh zshrc oh-my-zsh

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

我的理由是,我最近开始了一份新工作,并想使用我的 Mac 的两个帐户,这两个帐户都是管理员,而这两个帐户我都需要 devtools 以保持我的工作/开发和个人生活/ 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 安装 zshbrew 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

然后我尝试了一堆乱七八糟的东西,我不会添加这些东西,因为我相信它们只会引导其他人走上黑暗的道路。

alv*_*its 4

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

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

步骤1:确保umask不比022严格。如果不严格,则设置为022。

$ umask 022
Run Code Online (Sandbox Code Playgroud)

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

export ZSH=/usr/local/.zsh/oh-my-zsh
Run Code Online (Sandbox Code Playgroud)

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

$ sudo mkdir /usr/local/.zsh
$ sudo chown ${USER} /usr/local/.zsh
Run Code Online (Sandbox Code Playgroud)

第 4 步:运行安装程序。

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

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

$ sudo chown -R root /usr/local/.zsh
Run Code Online (Sandbox Code Playgroud)

第 6 步:更新 ZSH 的位置${ZSH}/templates/zshrc.zsh-template

$ sudo sed -i 's|export ZSH=.*|export ZSH='${ZSH}'|' ${ZSH}/templates/zshrc.zsh-template
Run Code Online (Sandbox Code Playgroud)

(可选)步骤 7:禁用自动更新。建议这样做,因为安装现在由 root 拥有。

$ sudo sed -i 's/# DISABLE_AUTO_UPDATE="true"/DISABLE_AUTO_UPDATE="true"/' ${ZSH}/templates/zshrc.zsh-template
Run Code Online (Sandbox Code Playgroud)

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