5.2. システム管理者とアカウント -su , useradd , userdelコマンド-

Linuxではシステムを管理するためのスーパーユーザが必ず存在します。スーパーユーザのアカウント名はroot(ルート)です。スーパーユーザは、ファイルに設定されているパーミッションに関係なく、システムに対してあらゆる操作が可能です。そのため、スーパーユーザで行う作業は特に注意しなければなりません。うっかり間違ったコマンドを実行したがために、システム全体を破壊してしまう可能性さえあります。スーパーユーザになるためには、rootでログインしなおす必要はなく、suコマンドを用いれば事足ります。

suコマンドを実行する際には一つ注意点があります。特にオプションを指定せずにsuコマンドを実行すると、既存のユーザ環境を転用します。つまり管理者と一般ユーザで実行するコマンドのいくつかに違いが生じるため、rootでログインした時には使えていたコマンドであっても、「コマンドが見つからない」というエラーを返される場合があります。既存のユーザ環境に依存せず、完全に指定したユーザ(この場合はroot)になりたい場合には、suコマンドにオプションとして“-”をつけて下さい。(“su -”)。そのユーザからログアウトするにはexitコマンドまたはCtrl+Dを入力します。

$ su –

パスワード:

# →プロンプトがスーパーユーザの”#”になった

ログアウト時にはexit(またはlogout)コマンドもしくはCtrl+Dを入力します。

# exit

$ →プロンプトが元に戻った

ユーザを管理するには、ユーザ管理のツールを用います。ユーザを追加するには、useraddコマンドを、ユーザを削除するにはuserdelコマンドを用います。

# useradd 追加したいユーザ名

# userdel 削除したいユーザ名

なお、userdelコマンドにオプションをつけないでユーザを削除した場合、そのアカウントが所有していたホームディレクトリは削除されずに残ってしまいます。ホームディレクトリごと削除したい場合には、“-r”オプションをつけて下さい(“userdel -r”)。

また、ユーザにはパスワードが必要です。ユーザを作った時点ではパスワードは用意されておらず、passwdコマンドを用いて個別にパスワードを設定する必要があります。
useradd、userdelコマンドともにmanコマンドで日本語のマニュアルを参照できます。

一般ユーザは、passwdコマンドを引数なしで実行することにより、自分のパスワードを変更することができます。ただし、あまりに簡単なパスワードである場合には失敗するケースがあります。一方、管理者はpasswdコマンドに引数として特定のユーザを指定することで、指定した一般ユーザのパスワードを変更することができます。

$ passwd

Changing password for user example.

Changing password for example

(current) UNIX password:  (現パスワード入力)

New UNIX password:  (新パスワード入力)

Retype new UNIX password:  (再度入力)

passwd: all authentication tokens updated successfully.

【問題】
1. 一般ユーザでログインした後に、suコマンドでスーパーユーザ環境に切り替えてみましょう
2. 新しいユーザを追加して、そのユーザのパスワードを設定してみましょう

資料をダウンロード