我如何从 sudo 用户检查 root 环境变量?我尝试了 su 和 sudo 的各种键和组合,但没有成功。
例如,普通用户的$HISTFILESIZE=2000,root用户的$HISTFILESIZE=9999。
vagrant@default-debian-78-64-nocm:~$ echo $HISTFILESIZE
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i
root@default-debian-78-64-nocm:~# echo $HISTFILESIZE
9999
但是当我尝试通过 sudo 获取 root $HISTFILESIZE 时 - 它总是返回 2000:
vagrant@default-debian-78-64-nocm:~$ sudo -i echo $HISTFILESIZE
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i su - -c "echo $HISTFILESIZE"
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i bash -c "echo $HISTFILESIZE"
2000
vagrant@default-debian-78-64-nocm:~$ sudo -i bash -l -c "echo $HISTFILESIZE"
2000
答案1
你的 shell 会在变量到达 之前就将其展开sudo
。而不是
sudo -i echo $HISTFILESIZE
以及所有的变体,您需要使用\如下所示的方式对其进行转义:
sudo -i bash -c "echo \${HISTFILESIZE}"
再编辑一次:需要用括号括住变量,它可能包含空格