当我通过 SSH 连接到 Linux 机器时,我想让/etc/profile文件将whoami命令的结果保存到全局环境变量中。
如果我要使用命令进入 root sudo su -,我不希望该命令在进入 root 时再次运行。我希望它whoami在我进入 root 之前使用我的常规用户名的结果,并且需要以 root 用户身份访问该变量,即使它会/etc/profile在我进入 root 时再次运行该文件。
我该怎么做才能在命令中只运行一次该/etc/profile命令?
小智 5
通过登录 shell 保留环境变量需要-m开关。保护环境变量过去须藤需要改变env_keep中的/ etc / sudoers文件。即便如此,这样做也是有问题的。
幸运的是,还有其他方法可以解决这个问题。例如,您的 tty 归您最初登录的用户所有。因此,将其添加到 /etc/profile 的末尾:
TTY=$(tty)
if [ -n "$TTY" ]; then
WHOAMI=`ls -al $TTY | awk '{print $3}'`
fi
Run Code Online (Sandbox Code Playgroud)
您将 WHOAMI 变量设置为 tty 的所有者,如果有的话,将 sudo 和非 sudo su 都设置为 root:
[corman@localhost ~]$ sudo su -
Password:
[root@localhost ~]# echo $WHOAMI
corman
[root@localhost ~]# logout
[corman@localhost ~]$ su -
Password:
[root@localhost ~]# echo $WHOAMI
corman
[root@localhost ~]#
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1579 次 |
| 最近记录: |