Linuxでユーザーのデフォルトシェルを変更する3つの方法


この記事では、Linuxでユーザーのシェルを変更する方法について説明します。シェルはコマンドを受け付けて解釈するプログラムです。 bash、sh、ksh、zsh、fish、その他のあまり知られていないLinux上のシェルなど、いくつかのシェルがあります。

Bash /bin/bash )は、すべてのLinuxシステムではないにしても、ほとんどのシステムで一般的なシェルであり、通常はユーザーアカウントのデフォルトのシェルです。

Linuxでユーザーのシェルを変更する理由はいくつかあります。

  1. To block or disable normal user logins in Linux using a nologin shell.
  2. Use a shell wrapper script or program to login user commands before they are sent to a shell for execution. Here, you specify the shell wrapper as a user’s login shell.
  3. To meet a user’s demands (wants to use a specific shell), especially those with administrative rights.

useraddまたはadduserユーティリティを使用してユーザーアカウントを作成するときは、 --shell フラグを使用して、それぞれの設定ファイルで指定されているもの以外のユーザーのログインシェルの名前を指定できます。

ログインシェルはテキストベースのインターフェースから、あるいはリモートのLinuxマシンからSSH経由でアクセスできます。ただし、グラフィカルユーザーインターフェース(GUI)からログインした場合は、 xterm konsole などのターミナルエミュレータからシェルにアクセスできます。

まず、あなたのLinuxシステムで利用可能なすべてのシェルを一覧表示しましょう。

# cat /etc/shells

/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/dash

先に進む前に、次の点に注意してください。

  • A user can change their own shell to any thing: which, however must be listed in the /etc/shells file.
  • Only root can run a shell not listed in /etc/shells file.
  • If an account has a restricted login shell, then only root can change that user’s shell.

それでは、Linuxユーザーシェルを変更する3つの方法について説明しましょう。

1. usermodユーティリティ

usermodはユーザーのアカウントの詳細を変更するためのユーティリティで、/etc/passwd ファイルに保存されています。ユーザーのログインシェルを変更するために使用されます。

この例では、まずユーザーtecmintのアカウント情報を確認して彼のデフォルトのログインシェルを表示し、次にそのログインシェルを/bin/sh から/bin/bash に変更します続きます。

# grep tecmint /etc/passwd
# usermod --shell /bin/bash tecmint
# grep tecmint /etc/passwd

2. chshユーティリティ

chsh は、ログインシェルを -s または –shell オプションで変更するためのコマンドラインユーティリティです。

# grep tecmint /etc/passwd
# chsh --shell /bin/sh tecmint
# grep tecmint /etc/passwd

上記の2つの方法はすべて、/etc/passwd ファイルに指定されているシェルを変更します。これは、次の3つ目の方法のように手動で編集できます。

3. / etc / passwdファイルのユーザーシェルを変更します。

この方法では、お気に入りのコマンドラインテキストエディタを使って/etc/passwd ファイルを開き、特定のユーザーシェルを変更します。

# vi /etc/passwd

編集が終わったら、ファイルを保存して閉じます。

これらの関連トピックを読むことを忘れないでください。

  1. Understanding Shell Initialization Files and User Profiles in Linux
  2. Understand Linux Shell and Basic Shell Scripting Tips – Part I
  3. How To Write and Use Custom Shell Functions and Libraries
  4. Understanding Different Classifications of Shell Commands and Their Usage

この記事では、Linuxでユーザーのシェルを変更するさまざまな方法について説明しました。私たちと何か考えを共有するには、以下のコメントセクションを使用してください。