使用 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'
...
我想通过 运行 脚本将超级用户添加到 /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'
...