答案1
如果您正在使用GNU bash(作为 Linux 上的登录 shell)并且如果您想要FOO
设置一些环境变量每个用户对于字符串值,bar
您可以在文件/etc/bash.bashrc
(接近末尾)中添加几行,例如:
# to be added in /etc/bash.bashrc
export FOO=bar
看§6.2 Bash 启动文件了解更多。
当然,您需要 root 权限才能编辑(一次,例如/usr/bin/sudo /usr/bin/emacs /etc/bash.bashrc
在某些终端中)该/etc/bash.bashrc
文件。
您还可以选择使用其他登录 shell,例如桀骜或者鱼。你需要安装他们的包并使用chsh(1)更改/etc/passwd
条目(另请参阅密码(5)并/etc/shells
记录在文件中贝壳(5))。他们有不同的方法来做同样的事情。
如果该文件/root/.bashrc
是世界可读的(这可能是网络安全风险),您可以使用eval
内置和正则表达式(1)或者呆呆的(1)在其上,使用命令替换。
请随时通过电子邮件询问更多信息[email protected]
(法国巴黎附近)。
答案2
这是一个复杂的方法:
root_test=$( sudo su -l -c 'printf "%s\n" "$test"' )
或者,假设 root 的 shell 是 bash:
eval "$(sudo su -l -c 'declare -p test')"
无论哪种方式,你都需要变得root,在 root 的登录环境中,访问变量的值。