我有一个shell脚本,用于创建用户并以该用户
执行另一个脚本sudo useradd -m devops
sudo passwd devops
sudo adduser devops sudo
su - devops -c "sh /path/to/myscript.sh"
此脚本创建用户,设置密码并按预期将用户添加到sudo组。
答案 0 :(得分:3)
尝试替换它:
su - devops -c "sh /path/to/myscript.sh"
用这个:
sudo -u devops -H sh -c "sh /path/to/myscript.sh"
-c
的{{1}}选项不支持交互模式:
su
指定将被调用的命令 shell使用-c。执行的命令没有控制终端。这个选项 不能用于执行需要a的交互式程序 控制TTY。
(-c, --command COMMAND
)
顺便说一句,我不会在脚本中使用man su
。该脚本可能只需要sudo
权限。在脚本中,您可以通过上述root
命令在必要时删除权限。