Mac终端:尝试添加到/ etc / shells

时间:2017-12-03 11:01:49

标签: macos terminal zsh

这个有效

$ cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

但是这个没有:

sudo -s 'echo /usr/local/bin/zsh >> /etc/shells'
/bin/bash: echo /usr/local/bin/zsh >> /etc/shells: No such file or directory

2 个答案:

答案 0 :(得分:3)

sudo将字符串作为完整命令。您应该使用shell来解释您的命令:

sudo sh -c 'echo /usr/local/bin/zsh >> /etc/shells'

使用root权限执行shsh将字符串解释为包含>>作为输出重定向的shell命令。

答案 1 :(得分:1)

您真正需要sudo的唯一方法是打开受保护的文件进行写入。您可以使用tee命令附加到文件。

echo /usr/local/bin/zsh | sudo tee -a /etc/shells > /dev/null