chshコマンドはログインシェルを変更できます。このコマンドはutil-linuxやshadow-utils等の様々なパッケージにあります。
細かいオプションについては、manコマンドで一度確認してみてもよいかもしれません。
この記事では、shadow-utils 4.8.1のchshコマンドを利用しています。
ユーザを指定してログインシェルを変更
引数にはユーザ名を指定します。ユーザ名を指定しない場合は現在のユーザのログインシェルについて変更するかどうかを問われます。
ログインパスワードを入力して、それからログインシェルを変更するかどうかを問われます。
'[]'で囲まれているのが現在のシェルになります。ログインシェルを変更したい場合はそのシェルのパスを入力します。変更しない場合は何も入力せずにEnterを押します。
1 2 3 4 5 |
$ chsh Password: Changing the login shell for ubuntu Enter the new value, or press ENTER for the default Login Shell [/bin/bash]: |
管理者権限を持っていると任意のユーザのログインシェルを変更できます。
1 2 3 4 5 6 7 |
$ sudo chsh chshtest_user Changing the login shell for chshtest_user Enter the new value, or press ENTER for the default Login Shell [/bin/sh]: /bin/bash $ sudo su -l chshtest_user chshtest_user@ubuntu-VirtualBox:~$ echo $SHELL /bin/bash |
変更するシェルを指定(-sオプション)
-sオプションを利用すると対話的な画面にしないでログインシェルを変更できます。
1 2 3 4 5 |
$ cat /etc/passwd | grep chshtest chshtest_user:x:1002:1002::/home/chshtest_user:/bin/sh $ sudo chsh -s /bin/bash chshtest_user $ cat /etc/passwd | grep chshtest chshtest_user:x:1002:1002::/home/chshtest_user:/bin/bash |
chshコマンドと関連のあるファイル
/etc/passwdを確認することでユーザの現在のホームディレクトリやシェルを確認することができます。
1 2 |
$ cat /etc/passwd | grep chshtest chshtest_user:x:1002:1002::/home/chshtest_user:/bin/bash |
シェルのリストは/etc/shellsで確認できます。
1 2 3 4 5 6 7 8 9 |
$ cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash |