有什么方法可以指定sudo
只为指定的命令保留某些环境变量吗?出于某些目的,我想要我的环境$HOME
。运行某些命令时保留的变量。为了其他目的和其他命令,我希望将其重置。可以做到/etc/sudoers
吗?
编辑:
谢谢你的回答。我想知道是否可以问一个后续问题,那就是“为什么,这不起作用?”
在我尝试开始工作的示例中,我想sudo nano
阅读我的$HOME/.nanorc
。如果我使用这个:
Defaults:simon env_keep=HOME
它完美地工作。如果我使用这个:
Defaults!/bin/nano env_keep=HOME
或这个:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
它根本不起作用。有什么建议吗?(顺便说一下,我正在进行Debian测试。)
(注意:nano
顺便说一句,我不认为这很具体-我可以使用单行bash脚本echo
s 来重现该行为$HOME
)。
@Arrowmaster-谢谢,这似乎是一种比我正在弄乱的方法更好的方法。因为我已经在包装
—
simon
sudo
自己的函数,所以我只添加了一个if [ "$1" == "$EDITOR" ]; then
块,现在sudoedit
改为调用:)
sudoedit
。sudoedit
会运行将文件的内容复制到tmp文件,然后以用户的身份运行您选择的编辑器,当编辑器退出时,它将检查您是否进行了任何更改,如果已更改,则将原始内容替换为已编辑的内容。您可以通过设置$EDITOR
或$ VISUAL`环境变量来选择要运行的编辑器。