回答:
環境変数SUDO_USERは、USERの代わりとして機能する必要があります。
所有権をUSER:USERに設定しているので、ユーザーと同じ名前のグループが常に存在すると思いますか?それ以外の場合、より厳密な解決策は、SUDO_UIDおよびSUDO_GIDを使用することです。
その場合、2つの可能な解決策は次のとおりです。
chown "${SUDO_USER}:${SUDO_USER}" dir
または
chown "${SUDO_UID}:${SUDO_GID}" dir
SUDO_USERはユーザーが上書きできます。
$ SUDO_USER='lala' sudo SUDO_USER='test' printenv | grep USER
USER=root
SUDO_USER=test
USERNAME=root
「who am i」または「logname」を使用して元のユーザー名を取得する必要があります
toto:~$ SUDO_USER='lala' sudo SUDO_USER='test' logname
toto
toto:~$ SUDO_USER='lala' sudo SUDO_USER='test' who am i
toto pts/4 Jan 23 15:13 (:0.0)
/programming/4598001/how-do-you-find-the-original-user-through-multiple-sudo-and-su-commandsから
logname
、who am i
機能します。
sudo: sorry, you are not allowed to set the following environment variables: SUDO_USER
まだ安全である可能性があるため、これを確認する必要があります。