这个作品

$ 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 

请您参考如下方法:

sudo将字符串作为完整命令。您应该使用 shell 程序来解释您的命令,如下所示:

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

这将以root特权执行 sh,并且 sh将字符串解释为包含 >>作为输出重定向的shell命令。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!