チルダがホームディレクトリに戻りません。

チルダがホームディレクトリに戻りません。

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

関連情報