Linuxのユーザ管理

ユーザの追加・削除

Linuxの特徴の1つに『マルチユーザ』があります。今回はLinuxのユーザ管理について学びましょう。

ユーザアカウントの種類

Linuxのユーザアカウントは3種類に分類できます。

特権ユーザシステム上のすべてのファイルや設定へのアクセス、変更、削除が可能な絶対的な権限を持つユーザです。スーパーユーザともいいます。”root”というアカウント名です。
システムユーザシステムについての権限は一般ユーザと同じですが、特定のサービスを実行するために作成されます。”apache”、”mysql”などがあります。
一般ユーザ原則として、自分のホームディレクトリ内のみファイル作成・読み取り・書き込みの権限を持ちます。システムの設定変更の権限は制限されています。

ユーザのグループへの所属

ユーザは、必ず1つ以上のグループに所属します。グループには2種類あります。

プライマリグループユーザ作成の際に割り当てられるグループです。Linuxでは、ユーザ毎にグループが作成されます。ユーザが新たにファイルやディレクトリを作成した場合、デフォルトでプライマリグループが所有グループとして設定されます。
セカンダリグループユーザはプライマリグループ以外のグループにも所属することが出来ます。これをセカンダリグループといいます。複数のセカンダリグループに属することも可能です。

ユーザの追加

ユーザを作成する場合、以下を設定することが出来ます。

ユーザIDユーザ作成時に必ず指定する必要があります。
ログインなどに使用する『アカウントの名前』です。英小文字・数字と”_”が使用可能、先頭は数字不可です。
文字数はディストリビューションやバージョンによって最大8~32文字と異なります。
UID内部的にユーザを区別するための数値です。
rootは0、システムユーザは1~499、一般ユーザは500~です。
ユーザ作成時に明示的な指定も可能ですが、省略すると自動的に割り当てられます。
所属グループIDプライマリグループです。デフォルトでユーザと同名のグループが自動的に作成されます。
GID内部的にグループを区別するための数値です。明示的な指定も可能ですが、省略すると自動的に割り当てられます。
パスワードユーザログインのためのパスワードです。Linuxではユーザ作成時に同時に設定することは出来ません。
パスワードの有効期限パスワードの有効期限です。
ホームディレクトリユーザのホームディレクトリです。
ユーザ作成時に自動的にディレクトリが作成されるわけではありませんので、別に手作業で作成する必要があります。
シェルユーザが使用するシェル(ログイン時に最初に実行されるプログラム)です。

上記のいくつかはユーザ作成コマンドのオプションで指定しますが、別コマンドを使用する必要があるものもあります。

ユーザ作成コマンド

ユーザ作成コマンドは useradd です。実際にユーザを作成するには管理者権限が必要です。

書式

useradd オプション ユーザID

オプションには以下のものがあります。

オプション意味省略時
-cコメントを記述する
-dホームディレクトリを指定する/home/ユーザ名が指定される
-eアカウントの有効期限を指定する
-gプライマリグループを指定するユーザと同名のグループが作成される
-mホームディレクトリを作成するホームディレクトリが作成されない
-sシェルを指定するデフォルトのシェルが指定される
-uUIDを指定する自動的に設定される
実行例1

tanaka というユーザを、すべてデフォルトの設定で作成してみましょう。

Bash
$ sudo useradd tanaka  
$

(sudo実行時にパスワードを訊かれた場合には、現在作業・しているユーザのパスワードを入力する)

登録状況は /etc/passwd で確認することが出来ます。

Bash
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/user/sbin:/user/sbin/nologin
(途中略)
tanaka:x:1001:1001::/home/tanaka:/bin/sh

/etc/passwdファイルは、1行に1ユーザの情報が記述されています。項目は”:”区切りで、

ユーザ名:パスワード:UID:GID:コメント:ホームディレクトリ:シェル

となっています。ただしパスワードはxとダミー表示され、実際には別のファイル(rootしか参照できない)に保存されています。

この例では、ユーザ tanakaの

UIDは1001
GIDも1001
ホームディレクトリは/home/tanaka
シェルは/bin/sh

となっていることが判ります。ただし、/home/tanakaは自動的には作成されていません。

実行例2

今度は、以下の設定でユーザを作成してみましょう。

ユーザ名suzuki
シェル/bin/bash
ホームディレクトリ作成
Bash
$ sudo useradd -s /bin/bash -m suzuki
$

内容を確認してみましょう。

Bash
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/user/sbin:/user/sbin/nologin
(途中略)
tanaka:x:1001:1001::/home/tanaka:/bin/sh
suzuki:x:1002:1002::/home/suzuki:/bin/bash

パスワード設定コマンド

useraddコマンドではパスワードを設定することが出来ません。パスワードの設定にはpasswdコマンドを使用します。

書式

passwd ユーザ名

パスワードはコマンドオプションで指定するのではなく、コマンドを実行すると対話的に訊いてきますので入力して下さい。

なお、passwdコマンドを一般ユーザ権限で実行すると自分自身のパスワードしか変更できません。作成した新規ユーザのパスワードを変更する場合は管理者権限(sudo)で実行します。

実行例

先ほど作成したユーザsuzukiにパスワードを登録してみましょう。

Bash
$ sudo passwd suzuki  
新しいパスワード:     ←testpass と入力。エコーバックされない
正しくないパスワード:このパスワードは辞書チェックに失敗しました - 辞書の単語に基づいています
新しいパスワードを再入力して下さい:   ←testpassと入力。エコーバックされない
passwd:パスワードは正しく更新されました
$

passwdコマンドを実行すると『新しいパスワード』を訊いてくるので、設定したいパスワードを入力します。このとき、画面には一切入力した文字が表示されないので注意して下さい。

この例では testpass という既存の英単語の組み合わせにしたためエラーが出ていますが問題なく設定できます。

それでは新しく作成したユーザに変身してみましょう。ユーザを変更するには su コマンドを使用します。

Bash
$ su - suzuki
パスワード:  ←testpassと入力
$ pwd
/home/suzuki

プロンプトにユーザ名が表示される設定になっている場合は、suzukiに変化しているはずです。

ユーザの削除

ユーザを削除するには、userdelコマンドを使用します。

書式

userdel ユーザID

ホームディレクトリは自動的には削除されません。

練習

1.以下のユーザを作成し、/etc/passwd の該当部分を表示した画面のスクリーンショットを撮って提出しなさい。

ユーザIDパスワードシェルプライマリグループ
arthur任意デフォルトデフォルト
benjie任意/bin/bashデフォルト
conrad任意/bin/bashroot
david任意/bin/nologinデフォルト
edward任意/bin/bashデフォルト

2.ユーザedwardを削除し、/etc/passwd の該当部分を表示した画面のスクリーンショットを撮って提出しなさい。

    コメント

    タイトルとURLをコピーしました