有什么方法可以指定sudo只为指定的命令保留某些环境变量吗?出于某些目的,我想要我的$HOMEenv。运行某些命令时保留的变量。出于其他目的和其他命令,我希望它重置。这可以做到/etc/sudoers吗?
编辑:
谢谢你的回答。我想知道我是否可以问一个后续问题,即“那么,为什么这不起作用?”
在我尝试开始工作的示例中,我想sudo nano阅读我的$HOME/.nanorc. 如果我使用这个:
Defaults:simon env_keep=HOME
Run Code Online (Sandbox Code Playgroud)
它完美地工作。如果我使用这个:
Defaults!/bin/nano env_keep=HOME
Run Code Online (Sandbox Code Playgroud)
或这个:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
Run Code Online (Sandbox Code Playgroud)
它根本不起作用。关于为什么的任何建议?(顺便说一句,我正在进行 Debian 测试。)
(注意:我不认为它是nano特定的,顺便说一句——我可以用一个简单的echos的单行 bash 脚本重现这种行为$HOME)。
我正在使用 zsh 和 gdm 来运行 gnome。前段时间我发现变量设置不正确。例如 LANG/LC_ALL 是不正确的(""而不是en_GB.UTF-8)。
我把.zshrc分成.zshrc和.profile。在后者中,我设置了环境变量,但是如何在会话开始之前设置变量?我尝试了一些选择(.xinitrc, .xsessionrc),但似乎都不起作用。
编辑为了澄清-我曾经.profile和手动在采购它.zshrc。无论如何它不会改变问题。