グループとユーザー - Linux

ユーザーとグループ

Linux のアクセス権は、ユーザーそのものと、そのユーザーが所属するグループ、そしてそれ以外のユーザーの3種類があります。

グループは、所属しているすべてのユーザーに対してまとめてアクセス権を与えることができます。

ユーザーは、かならず1つのグループに所属し、さらに複数のサブグループにかけもちで所属することができます。

ユーザー

ユーザーを作成するには次のようにします。

user というユーザーの作成

useradd user

ユーザ名やその情報は「 /etc/passwd 」ファイルに記録されています。

表示内容が多くスクロールするようなら、ページャで閲覧します。

1行に1つのユーザーの設定内容が記述されており「 : 」で区切ってあります。

user:x:1001:1001::/home/user:/bin/bash
カラム 内容
user ユーザ名
x パスワードを示すカラムだが古い環境でなければ「 x 」一文字であらわされる
1001 ユーザid
1001 グループid
記述されていないカラムで任意のコメント。ユーザ作成時に設定するもので手動で編集はしてはいけない
/home/user ユーザのホームディレクトリ
/bin/bash ユーザが使用するシェルを設定

「 passwd ファイル 」からユーザー名のみを表示するには次のようにします。

cut -d: -f1 /etc/passwd

追加したユーザーを削除するには次のようにします。

sudo userdel user

ユーザー名を削除しただけでは、ホームディレクトリは残るため、次のようにして削除します。

sudo rm -rf /home/user

ホームディレクトリ・メールスプールもまとめて削除するには、オプションの「 -r 」をつけます。

sudo userdel -r user

追加したユーザーにパスワードを設定するには次のようにします。また、パスワードの変更する場合も「 passws 」コマンドを使います。

sudo passwd user

簡単なパスワードを設定しようとする次のように注意されます。

BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word

不正なパスワード: パスワードは辞書チェックに失敗しました - 辞書の単語に基づいています

パスワードが設定されているかは「 /etc/shadow 」を見るとわかります。ファイルには暗号化されたパスワードの一覧が格納されています。

2つめのカラムが「 !! 」だとパスワードは未設定です。

sudo grep user /etc/shadow

ユーザーを追加し、sudo コマンドを実行しようとしても、実行権限が付与されていないため次のような表示がされます。

user is not in the sudoers file. This incident will reported.

user は sudoers ファイル内にありません。この事象は記録・報告されます。

sudo の設定は 、「 /etc/sudoers 」という設定ファイルに記述します。

sudo の実行権限を付与するには、実行権限のあるユーザーで「 visudo コマンド 」を実行し「 /etc/sudoers 」ファイルを編集します。

特定のユーザーに sudo を実行できるようにするには次のように「 /etc/sudoers 」ファイルを編集します。

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
user    ALL=(ALL)       ALL # +

また、上記のように「 /etc/sudoers 」ファイルを編集するのではなく、ユーザーを wheel グループに所属する方法があります。その場合は次のようにします。

sudo usermod --append -G wheel user

ユーザーが wheel グループに含まれているか確認するには次のようにします。

[user@localhost ~]$ id user
uid=1001(user) gid=1001(user) groups=1001(user),10(wheel),1002(newclass)

グループ

グループ一覧を確認するには、次のようにします。

sudo cat /etc/group

「 /etc/group 」には、、1行につき1つのユーザーの設定内容が記述されており「 : 」で区切ってあります。

user:x:1001:
カラム 内容
user グループ名
x ダミーパスワード
1001 グループID
最後の空白のカラム サブグループとして所属しているユーザー(複数の場合はカンマ区切り)

グループ名のみを表示するには、次のようにします。

sudo cat /etc/group | cut -d : -f 1

グループを追加するには、次のようにします。

groupadd newgroup

指定したユーザーが所属するグループをすべて表示するには次のようにします。

groups testuser

主グループを変更するには、次のようにします。

sudo usermod -g グループ名 ユーザー名

sudo usermod -g newclass user

副グループに追加するには、次のようにします。

sudo usermod -aG グループ名 ユーザー名

sudo usermod -aG subgroup user

副グループを変更するには、次のようにします。

sudo usermod -G グループ名 ユーザ名

sudo usermod -G changegroup user

グループを削除するには、次のようにします。

groupdel グループ名

sudo groupdel newclass

ユーザーの副グループを削除するには次のようにします。

sudo gpasswd -d ユーザー名 グループ名

sudo gpasswd -d user newclass

特定のグループに所属するユーザーを調べるには次のようにします。

sudo cat /etc/group | grep newclass