有没有办法使用 sudo root 但使用非 root 命令设置?

有没有办法使用 sudo root 但使用非 root 命令设置?

例如,对于命令sudo vim /var/log/errors.log,我希望 vim 使用我自己的用户设置而不是 root 设置来启动。我知道我可以为 root 帐户设置 vim,但这不是我想要的,因为它很可能在将来的更新中变得混乱。而且我也不想改变其他帐户的 vim 行为。

答案1

sudoedit

它也更安全。
使用 vim(如果它不是你的默认编辑器)

(export VISUAL=vim; sudoedit file)

但更好的是...在你的 ~/.bashrc 中设置 VISUAL 和 EDITOR 以便它成为你的默认编辑器。

答案2

我无法测试,但这可能有效:sudo HOME=/home/myusername vim /var/log/errors.log

或者更简单的方法:sudo HOME=$HOME vim /var/log/errors.log

答案3

您需要编辑/etc/sudoers文件和潜在的/etc/sudoers.d/并删除环境重置选项中的默认值陣容 註釋 .

我的看起来像这样:

Defaults env_reset

删除或注释掉该行,然后须藤将保留用户的环境变量,而不是转储所有内容并填充一些特定值。

当然,看看sudoers请参阅手册页以了解更多详细信息,并记得使用命令编辑 sudoers 文件维苏多(或者须藤维须藤)visudo 会先检查 sudoers 文件中是否有错误,然后才会允许您完成编辑...如果文件损坏或未通过任何检查...您就无法再使用 'sudo',因此需要使用 visudo 命令。

相关内容