Linux Shell脚本用户开关

Linux Shell脚本用户开关,linux,shell,debian,sudo,su,Linux,Shell,Debian,Sudo,Su,我正在运行一个简单的shell脚本,它创建一个用户,然后切换到它,这样我就可以作为新用户运行一系列命令。下面的脚本是作为Debian 9(Stretch)amd64主机上的根运行的,没有显示我所期望的内容。这只是一个测试脚本,让我看看发生了什么 #!/bin/sh adduser karl --gecos "First Last, RoomNumber, WorkPhone, HomePhone" --disabled-password adduser karl sudo echo 'karl:

我正在运行一个简单的shell脚本,它创建一个用户,然后切换到它,这样我就可以作为新用户运行一系列命令。下面的脚本是作为Debian 9(Stretch)amd64主机上的
根运行的,没有显示我所期望的内容。这只是一个测试脚本,让我看看发生了什么

#!/bin/sh
adduser karl --gecos "First Last, RoomNumber, WorkPhone, HomePhone" --disabled-password
adduser karl sudo
echo 'karl:password123' | chpasswd
echo 'karl ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/karl

echo
sudo su - karl
whoami # prints root?
echo

echo
sudo -u karl /usr/bin/whoami # prints karl
echo

exit 0

您可能希望将所有“karl”命令放在一个单独的文件中,然后执行
sudo su-c/path/to/karl_commands.sh-karl
此外,如果您已经是root用户,您不需要
sudo su
,只需使用
su
@glennjackman,谢谢