我需要以另一个用户的身份在该用户的 $HOME
目录中执行 bash 脚本的一部分。但是,我不确定如何确定这个变量。切换到该用户并调用 $HOME
不会提供正确的位置:
# running script as root, but switching to a different user...
su - $different_user
echo $HOME
# returns /root/ but should be /home/myuser
问题似乎出在我试图在脚本中切换用户的方式上:
$different_user=deploy
# create user
useradd -m -s /bin/bash $different_user
echo "Current user: `whoami`"
# Current user: root
echo "Switching user to $different_user"
# Switching user to deploy
su - $different_user
echo "Current user: `whoami`"
# Current user: root
echo "Current user: `id`"
# Current user: uid=0(root) gid=0(root) groups=0(root)
sudo su $different_user
# Current user: root
# Current user: uid=0(root) gid=0(root) groups=0(root)
在 bash 脚本中作为不同的用户切换用户和执行命令的正确方法是什么?