単一のLinux / Unixディストリビューションでさまざまなユーザー用にさまざまなシェルを構成できますか?

単一のLinux / Unixディストリビューションでさまざまなユーザー用にさまざまなシェルを構成できますか?

まあ、これは私がやりたいことではありませんが、Unix / LinuxシステムのShell設定についてさらに学ぶためにこの質問をすることです。だから私が答えたい状況は次のとおりです。

Unix / Linuxシステムは異なるシェルを提供するため、システムにアクセスできるユーザーごとに異なるシェルを構成できます。したがって、Tom、Dick、およびHarryが「Unix」システムを使用する権限を持つ3人のユーザーであり、「Tom」にシェルを使用させるとしましょう。、ディックを使うtcshハリーと一緒に使う強く打つシェル。どうすればいいですか?可能でしょうか?

答え1

まず、有効なシェルがにリストされています/etc/shells。すべてのユーザーはファイルchshでlongを使用してデフォルトのシェルを変更できます/etc/shells

次に、シェルを追加したい場合は、/etc/shellsそこからエントリ、特に/bin/shを削除すると、システムが壊れる可能性があります。/bin/loginそこにリストされていないシェルは通常実行されないためです。

詳細については、次を参照してください。chsh(1)、ログイン名.defs(5)とパスワード(5) マニュアルページ。

この機能は長い間使用されてきました(BSD 4.xと思います)。

答え2

はい、ユーザーごとにシェル設定が異なる場合があります。たとえば、コマンドを使用して変更できますchsh。現在のユーザーのシェルをbashに変更するには(/ bin / bashにあると仮定):

chsh -s /bin/bash [username]

/etc/passwdファイルを手動で変更し、そのユーザーのシェルを指定するファイルの部分を変更することもできます。たとえば、

root:*:0:0:System Administrator:/var/root:/bin/sh

/etc/passwdの各行の最後の部分(最後の行の後ろ)は上記の行と似ており、:そのユーザーのシェルを指定します。

答え3

あなたはそれを使用することができますchsh

chsh -s /bin/sh user_name

関連情報