̃Gg[͂ĂȃubN}[Nɒlj

Unix :: 1つの UNIX ユーザーアカウントを利用して複数ユーザーがログインする時、それぞれ異なる .bashrc を読み込ませたい



UNIX ユーザーアカウントが1つかないサーバー上で、複数ユーザーがログインして作業する必要があるとします。
通常は .bashrc は1つしかないので、誰がログインしても共通の .bashrc を使用するしかありません。
しかし、以下の設定を行うことで複数ユーザーにおいてもそれぞれ専用の .bashrc を使用することが可能になります。

authorized_keys

ログインユーザーを識別するために、以下のように authorized_keys に environment を記述して環境変数を設定します。

~/.ssh/authorized_keys

environment="LOGIN=userA" ssh-rsa AAAAB3Nza..........
environment="LOGIN=userB" ssh-dss AAAAB3Nza..........
  • 1行目 : userA の公開鍵
  • 2行目 : userB の公開鍵

※ 各自の鍵を用意する必要があります。


共通の .bashrc

共通の .bashrc に以下のように記述して条件分岐を行い、ユーザー毎に専用の bashrc を読み込ませる設定にします。

~/.bashrc

if [ $LOGIN == "userA" ]; then
    # for userA
    source $HOME/.rc/userA/bashrc

elif [ $LOGIN == "userB" ]; then
    # for userB
    source $HOME/.rc/userB/bashrc

fi


ユーザー毎の bashrc

ユーザー毎の bashrc は事前に用意しておきます。

~/.rc/userA/bashrc
~/.rc/userB/bashrc
  • ユーザー毎の bashrc は、お好きな場所に設置してください。





unix/general/multi_bashrc.txt