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

标签 linux bash root sudo sudoers

我想通过运行脚本然后继续安装来将 super 用户添加到/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 即可。在这种情况下,由于我们希望通过管道传输到需要提升权限的文件,因此我们应该以 sudo 身份运行 shell。问题中的命令可以写成:

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

关于linux - 使用 Bash 在 "sudo -i"之后切换回之前的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44048858/

相关文章:

c - Linux 上带有管道和 I/O 重定向的 Shell 模拟器

linux - 什么是 .pivot_root 文件?

android - 如何在不 root 的情况下在 Android 手机中启用 ad-hoc 模式?

linux - 在 Linux 上,如何将文件名从 blah_m_n_12192012.txt 更改为 blah_m_n.txt

linux - 解释导出 LANG、LC_CTYPE 和 LC_ALL 的效果

linux - 什么时候需要使用gcc/g++生成Map文件? "-g"足以进行调试吗?

python - 如何在脚本中使用谷歌应用程序专用密码?

linux - 将输出 append 到文件时出现奇怪的错误

string - bash echo 中的 *G* 是什么意思?

c# - 获取母版页控制