/etc/passwdファイルでこのユーザーのホームフォルダを設定しましたが、ログイン時にPython virtualenvを有効にしたいと思います。プライベート.bashrc
ファイルがある場合は、activate
そのファイルにコマンドを含め、ディレクトリをvirtualenvを有効にした後にフックに変更します。
ただし、これらのユーザーにはホームフォルダや個人用ファイルはありません.bashrc
。
ログイン時に各ユーザーに対して異なるコマンドを実行する方法は? (1つのコマンドを実行するだけです。)
これらのユーザーはSSHのみを使用してログインし、su
SSHを使用しません。マシンはUbuntu 12.04.3 LTSを実行するVPSです。
答え1
実行する各ユーザーのステートメントを/etc/profiile.d
含むファイルをシステムディレクトリに追加できます。if/then
virtualenv
はい
次のようなファイルを作成するとします/etc/profile.d/me.sh
。
if [ "$USER" == "saml" ]; then
touch /tmp/samsfile
fi
実行可能にする:
$ chmod +x /etc/profile.d/me.sh
次に、saml
次のコマンドを使用してログインしますsu
。
$ su saml
一時ファイルが作成されたことを確認すると、次のようになります。
$ ls -l /tmp/samsfile
-rw-rw-r-- 1 saml saml 0 Oct 14 00:31 /tmp/samsfile
答え2
環境変数を定義したい場合は、環境変数を入れることができます。~/.environment
ユーザーのホームディレクトリにあります。 ~/.profile
.
すべてのユーザーアカウントには、自分に属していなくてもホームディレクトリがあります。ホームディレクトリが存在しないアカウントを持つことができますが、そうすることはあまり意味がありません。必要に応じて、ルートが所有する単一のディレクトリをこれらのユーザーのホームディレクトリとして使用できます。
ログイン時にコマンドを実行する別の方法は次のとおりです。pam_exec
PAMスタックに。ただし、これを正しく使用することは、プログラムの実行時に非常に面倒であることに注意してください。オリジナルこれは、ターゲットユーザーではなくユーザーまたはrootユーザーであり、元のユーザーが選択した環境で実行されるため、rootとして実行するとセキュリティが困難になります。