rootに訴えた後、すべてのユーザーがホームディレクトリの代わりに/ rootで起動するのはなぜですか?

rootに訴えた後、すべてのユーザーがホームディレクトリの代わりに/ rootで起動するのはなぜですか?

私はこれが簡単なはずだと思いますが、誰かがこのような質問をするのを見たことがありません。状況はとても簡単です。ユーザーになるたびに、su user常にホームディレクトリではなく/rootディレクトリから起動されます。お見せします。

[root@st-test2 ~]# grep "postgres" /etc/passwd
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql/:/bin/bash
[root@st-test2 ~]# su postgres
bash-4.2$ pwd
/root
[root@st-test2 ~]# ls -lhart /var/lib |grep postgres
drwx------.  4 postgres postgres   86 May  5 16:07 pgsql

したがって、postgresユーザーのホームディレクトリが存在し、/etc/passwdに設定されていることがわかりますが、何らかの理由でルートから始まります。これは私が作成するすべてのユーザーに起こりますが、その理由はわかりません。私も前にこのようなことが起こったことを見たことがないとは言えません。

ベストアンサー1

ユーザー名のみを引数として指定する場合は、suユーザーを変更してください。あまり変更しないで:

以前のバージョンとの互換性のために、デフォルトではsu現在のディレクトリは変更されず、環境変数HOMEとのみ設定されますSHELL(ターゲットユーザーがrootでない場合とUSER追加)。LOGNAME

したがって、su postgres同じディレクトリに滞在してください。しかし、HOME新しいユーザーのホームディレクトリに設定されているので、cd 〜するあなたを正しい場所に連れて行ってください。

ユーザーのプライマリディレクトリにログインして実行するには、su適切に設定されたログインシェルの実行を要求する必要があります。

su -l postgres

またはその共通の同義語、

su - postgres

おすすめ記事