所以我打算运行一个 shell 脚本,但它不起作用,因为它需要以 root 身份运行。问题是我使用su命令以 root 身份登录。
这怎么可能?
root@polo-E15301:/home/polo/Downloads# echo $USER
polo <<<---- regular user
root@polo-E15301:/home/polo/Downloads# whoami
root
root@polo-E15301:/home/polo/Downloads# echo $UID
0
root@polo-E15301:/home/polo/Downloads#
当
su
专门登录 root 时,除非请求登录 shell,否则su
不会设置;说USER
man su
如果你使用
su --login
你会发现USER
被设置为root。在 shell 脚本中,应该使用类似的工具来测试 root 权限,
id
而不是依赖环境变量。另请参阅谁设置 $USER 和 $USERNAME 环境变量?