使用 Bash "sudo -i" 后切换回之前的用户

Switching back to previous user after "sudo -i" using Bash

我想通过 运行 脚本将超级用户添加到 /etc/sudoers,然后继续安装。因此,我需要在添加用户后将用户从root切换回原来的用户。这是我得到的:

...
current_user=$(whoami)
sudo -i
sudo echo "www-data ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sudo su $current_user 
...

不幸的是,最后一行不起作用,因为 $current_user 由于某种原因为空。任何关于可能是什么问题的指导将不胜感激。

最佳,

sudo -i是交互使用的,要运行一个简单的root命令,前面加sudo就可以了。在这种情况下,由于我们要通过管道传输到需要提升权限的文件,因此我们应该 运行 shell 作为 sudo。问题中的命令可以写成:

...
sudo bash -c 'echo "www-data ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers'
...