web-dev-qa-db-ja.com

すべてのユーザーのデフォルトのシェルをbashに変更するにはどうすればよいですか?

今後、すべての新規ユーザーがデフォルトでシェルとしてbashを使用するようにします。

自分のシェルをbashに変更するには、コマンド「chsh -s/bin/bash」を使用することを知っていますが、将来のすべてのユーザーのシェルをデフォルトでbashに自動的に設定するにはどうすればよいですか?

37
coffee-grinder

adduser

adduserデフォルトファイルは/etc/adduser.confです。 DSHELL変数で定義されるデフォルトのシェルは、デフォルトで/bin/bashです。

seradd

Useraddは非常に低レベルのユーティリティであり、直接使用されることはほとんどないため、おそらくこれは必要ありません。

Useraddを使用する場合は、/etc/default/useraddスケルトンファイルを編集します(バックアップを作成することを忘れないでください)。

Shell変数を/bin/bashではなく/bin/shに設定します。

これで、useraddを使用して新しいユーザーを追加するたびに、bashが自動的にデフォルトのシェルになります。

既に存在するユーザー

既存のユーザーのシェルを変更する場合は、/etc/passwdファイルを編集する必要があります(バックアップを必ず取ってください)。

ここに列の説明があります

  1. ログイン名
  2. オプションの暗号化パスワード
  3. 数値ユーザーID
  4. 数値グループID
  5. ユーザー名またはコメントフィールド
  6. ユーザーのホームディレクトリ
  7. オプションのユーザーコマンドインタープリター

このようなコロン(:)で区切られた順序で。

root:x:0:0:root:/root:/bin/bash

そのファイルの詳細については、マニュアルページman 5 passwdを参照してください。

60

Octavianが指摘したように、デフォルトを変更する方法は、ユーザーの作成方法によって異なります。 Gnome Settingsで新しいユーザーを作成しようとしましたが、/etc/default/useraddに続いているようです。既存のユーザーにとって、他の誰かのログインシェルを変更する最も安全な方法はsermodを使用することです:

usermod -s /bin/bash $USERNAME

ルートでない場合は、Sudo thatにする必要があります。代替方法は、変更するユーザーにSudoを追加して、次のようにchshを実行するだけです。

Sudo -u $USERNAME chsh -s /bin/bash

/etc/passwdを手作業で編集することは避けるのが最善です。なぜなら、そこの間違いはあらゆる種類のものを壊す可能性があるからです。

25
Jack O'Connor

サーバー上のすべてのユーザーにbash(実際に尋ねられた質問)を実際に欲しい場合、次のコマンドを実行できます。

Sudo dpkg-reconfigure dash

そして、ダッシュなしを選択します。この回答で説明したように、

/ bin/shが/ bin/bashを指すようにする方法

これは、bashをデフォルトのシェルとして設定するだけでなく、shとmanページを正しく再ポイントします。

お役に立てれば。

1
MontyThreeCard