使用 sudo 命令更改用户后,波浪号 (~) 不返回当前用户的主目录,而是返回先前登录用户的主目录。我需要扩展,echo ~USERNAME
但我需要echo ~
保持现有应用程序的兼容性。
user1@server1:-$ whoami
user1
user1@server1:-$ sudo -u user2 -s /bin/bash
user2@server1:-$ whoami
user2
user2@server1:- echo ~
/home/user1
user2@server1:-$ echo ~user2
/home/user2
答案1
sudo
不一定会更改调用者的主目录。您需要使用-H
来确保这一点
sudo -H -u user2 -s
或者
sudo -u user2 -i
man sudo
详情请参阅
答案2
sudo 命令未设置 HOME 环境变量。为此,我们需要添加set_home
或always_set_home
归档sudoers
。