我需要以不同的用户身份执行bash脚本的一部分,并在该用户的$HOME
目录中执行.但是,我不确定如何确定这个变量.切换到该用户并调用$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脚本中以不同用户切换用户和执行命令的正确方法是什么?