Мне нужно выполнить часть bash script как другого пользователя и внутри этого пользовательского каталога $HOME
. Однако я не уверен, как определить эту переменную. Переход к этому пользователю и вызов $HOME
не обеспечивают правильное расположение:
# running script as root, but switching to a different user...
su - $different_user
echo $HOME
# returns /root/ but should be /home/myuser
Обновление:
Похоже, проблема связана с тем, что я пытаюсь переключить пользователей в свой script:
$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 script?