是什么导致 sudo 下的“~”在不同的安装之间发生变化?

是什么导致 sudo 下的“~”在不同的安装之间发生变化?

我有两台计算机。一台是计算机 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 的身份运行别名userAroot得到不同的结果:

$ 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 之间是否有任何变化会影响此情况?

相关内容