3 sudo
下面的配置在我的/etc/sudoers
:
Defaults !visiblepw
Defaults always_set_home
Defaults env_reset
Defaults env_keep = "COLORS EDITOR DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
Run Code Online (Sandbox Code Playgroud)
当sudo su
我的PS1
终端更改为系统默认值时;无视我的.bashrc
PS1
设置。我该如何解决这个问题,以便在sudo su
ing时不会丢失环境变量?
奇怪的; 它正在出口,EDITOR
但PS1
由于某种原因没有出口;就像它被强行覆盖一样;我怎么能阻止这个?
当我运行时sudo -V
要保留的变量PS1
被列出;它没有列在要删除的变量中。
不要使用sudo su
. 这是对 的滥用/无用使用su
。正确的等价物是sudo -s
。
如果要保留环境变量,则需要sudo -Es
.
如果您发现它$PS1
仍在更改,则您可能有一个脚本来执行此操作。您可以通过执行sudo -Es $SHELL -x
和阅读输出来找出位置。
一两年前,Unix 系统 shell 的作者和包维护者一致认为通常最好不要 export PS1
(由于各种 shell 之间的巨大语法差异以及某些 shell 在提供提示时的某些“爆炸性”行为其他贝壳)。我们都同意移动PS1
初始化交互shell启动文件,那就是~/.mkshrc
,~/.kshrc
,~/.bashrc
等。
免责声明:我是 mksh 开发人员。
归档时间: |
|
查看次数: |
3608 次 |
最近记录: |