我有两台计算机。一台是计算机 A,运行 Ubuntu 18.04。另一台是计算机 B,运行 Ubuntu 20.04。
在计算机 A 上,我有一个~/.bash_aliases
文件
-rw-r--r-- userA userA /home/userA/.bash_aliases
使用以下别名:
alias sudo='sudo '
alias runtest='$HOME/bin/test_script.sh'
文件~/bin/test_script.sh
-rwxr--r-- userA userA /home/userA/bin/test_script.sh
有内容
#!/bin/bash
echo ~
当我将别名作为userA
和运行时root
,我得到
$ runtest
/home/userA
$ sudo runtest
/home/userA
(这就是我想要的,不管它值多少钱)。
在计算机 B 上,我尝试进行相同的设置。~/.bash_aliases
文件
-rw-r--r-- userB groupB /home/userB/.bash_aliases
有相同的别名
alias sudo='sudo '
alias runtest='$HOME/bin/test_script.sh'
剧本~/bin/test_script.sh
-rwxr--r-- userB groupB /home/userB/bin/test_script.sh
与计算机 A 上的内容完全相同。但是在计算机 B 上,以 both 的身份运行别名userA
却root
得到不同的结果:
$ runtest
/home/userB
$ sudo runtest
/root
请注意,执行时$ sudo runtest
,~
被解释为计算机 A 上$HOME
用户 ( userA
) 的文件夹,但计算机 B 上却是$HOME
的文件夹root
。我希望它返回/home/userB
,就像在计算机 A 上一样。
我已检查过的内容:
.bash_aliases
自上次编辑以来,我已经在两台机器上进行了源操作。/etc/sudoers
在两台计算机上都是相同的,并且都没有env_keep
在 内的任何地方进行设置/etc/sudoers.d/
。/etc/pam.conf
并且/etc/pam.d/sudo
在两台计算机上都是相同的。$PATH
对于两个用户和两个根来说,这些值是相同的。
对于用户:
$ echo $PATH
/home/user(A|B)/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
对于root
计算机 A 和计算机 B:
$ sudo su
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
这两台计算机之间肯定存在一些差异,但我已经检查了所有我知道的检查内容。还有什么可以解释这种不同的行为?18.04 和 20.04 之间是否有任何变化会影响此情况?