sudoコマンドを使用してユーザーを変更すると、チルダ(〜)は現在のユーザーのホームディレクトリを返さずに、以前にログインしたユーザーのホームディレクトリを返します。拡張する必要がありますが、既存のアプリケーションとの互換性を維持する必要がecho ~USERNAME
あります。echo ~
user1@server1:-$ whoami
user1
user1@server1:-$ sudo -u user2 -s /bin/bash
user2@server1:-$ whoami
user2
user2@server1:- echo ~
/home/user1
user2@server1:-$ echo ~user2
/home/user2
答え1
sudo
呼び出し側のホームディレクトリを必ずしも変更するわけではありません。以下を使用して-H
これを保証する必要があります。
sudo -H -u user2 -s
または
sudo -u user2 -i
man sudo
詳細については、次を参照してください。
答え2
sudo コマンドは HOME 環境変数を設定しません。これを行うには、追加またはset_home
保存always_set_home
する必要がありますsudoers
。