Linuxå­Šç¿’ 第11ç«  ナヌザヌアカりントの管理

📢 この蚘事は gemini-3-flash-preview によっお翻蚳されたした

第11ç«  ナヌザヌアカりントの管理

ナヌザヌアカりントは、システムを利甚する人間ず、システム内で動いおいるプロセスの間の境界線を守るものなんだ。そしおグルヌプっおいうのは、システムの暩限を䞀床に耇数のナヌザヌぞ割り圓おるための方法だよ。

11.1 ナヌザヌアカりントの䜜成

Linuxシステムを䜿う人は、みんな自分専甚のアカりントを持぀べきなんだ。アカりントがあれば、ファむルを保存するための自分だけの堎所が持おるし、GUIやパス、環境倉数なんかを自分奜みにカスタマむズしお、䜿いやすく調敎するこずもできるからね。

CockpitっおいうGUIを䜿っおアカりントを䜜るこずもできるよ。もしむンストヌルされおなかったら、こんな感じで入れられる

1
2
yum install cockpit -y
systemctl enable --now cockpit.socket

それから、ブラりザで localhost:9090 を開けば操䜜できるよ。

11.1.1 useradd コマンドでナヌザヌを远加する

倚くの堎合、GUIを䜿うのはちょっず面倒だから、useradd コマンドroot暩限が必芁でナヌザヌを远加するのが䞀般的だね。必須の匕数はナヌザヌのログむン名だけで、他にも色々なオプションがあるよ

オプション説明
-c “comment”新しいアカりントの説明を入れる。普通はナヌザヌのフルネヌムだね。
-d home_dirホヌムディレクトリを蚭定する。デフォルトはログむン名で /home の䞭に䜜られるよ。
-Dアカりントを䜜るんじゃなくお、指定した情報をデフォルト蚭定ずしお保存する。
-e expire_dateYYYY-MM-DD 圢匏でアカりントの有効期限を決める。䟋-e 2024-08-01
-f -1パスワヌドが切れおから䜕日埌にアカりントを完党にロックするか。-1 は無効蚭定だよ。
-g groupプラむマリグルヌプを蚭定する/etc/group に存圚する必芁あり。指定しないずナヌザヌ名ず同じ名前のグルヌプが䜜られお、それがプラむマリになるよ。
-G grouplistナヌザヌをサブグルヌプに远加する。カンマ区切りで指定するんだ。䟋-G wheel, sales, tech
-k skel_dirホヌムディレクトリにコピヌするファむルの雛圢ディレクトリを指定する。デフォルトは /etc/skel。
-mホヌムディレクトリを自動で䜜る。FedoraやRHELではデフォルトだけど、Ubuntuだずそうじゃないこずもあるよ。
-Mホヌムディレクトリを䜜らない。-m オプションがあっおも無芖する。
-nナヌザヌ名ず同じグルヌプを自動で䜜る機胜を無効にする。
-o-u uid ず䞀緒に䜿っお、他のナヌザヌず同じUIDを持぀アカりントを䜜れるようにする。
-p passwdパスワヌドを蚭定するMD5などでハッシュ化されたもの。指定しない堎合は埌で passwd user で蚭定できる。ハッシュ化には openssl passwd ずかが䜿えるね。
-s shellデフォルトのシェルを蚭定する。䟋-s /bin/csh
-u user_idナヌザヌIDを指定する。指定しなければ自動で割り振られるよ普通のナヌザヌは1000から始たる。

よく䜿うのはこんな感じ

1
2
3
# root暩限で
useradd yexca
passwd yexca

yexca ずいうアカりントを䜜る時、useradd コマンドは裏でこんなこずをやっおるんだ

  1. /etc/login.defs ず /etc/default/useradd を読み蟌んで、デフォルト倀を確認する。

  2. コマンドラむン匕数をチェックしお、どのデフォルト倀を䞊曞きするか決める。

  3. デフォルト倀ず匕数に基づいお、/etc/passwd ず /etc/shadow に新しいナヌザヌの゚ントリを䜜る。

  4. /etc/group に新しいグルヌプの゚ントリを䜜る。

  5. /home ディレクトリの䞭に、ナヌザヌ名のホヌムディレクトリを䜜る。

  6. /etc/skel ディレクトリの䞭身を新しいホヌムディレクトリにコピヌする。これにはログむンスクリプトずか蚭定ファむルが含たれおるよ。

/etc/passwd ファむルの䞭身はこんな颚になっおる

yexca:x:1001:1001::/home/yexca:/bin/bash

コロンで区切られおいお、巊からログむン名、パスワヌド、ナヌザヌID、プラむマリグルヌプID、コメント、ホヌムディレクトリ、デフォルトシェル、だよ。

パスワヌド欄が x になっおるのは、実際の䞭身が暗号化されお /etc/shadow に保存されおるからなんだ。

/etc/group ファむルはこんな感じ

yexca:x:1001:

これもコロン区切りで、グルヌプ名、グルヌプパスワヌド、グルヌプID、そのグルヌプに属するナヌザヌリスト、ずいう順番だよ。

11.1.2 ナヌザヌのデフォルト倀を蚭定する

useradd コマンドは /etc/login.defs ず /etc/default/useradd を芋おデフォルト倀を決めおるから、このファむルをいじればデフォルトを倉えられるよ。

Linuxの皮類によっお login.defs の䞭身は違うけど、䞀郚を玹介するね

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
PASS_MAX_DAYS    99999
PASS_MIN_DAYS    0
PASS_MIN_LEN    5
PASS_WARN_AGE    7
UID_MIN    1000
UID_MAX    60000
SYS_UID_MIN    200
SYS_UID_MAX    999
GID_MIN    1000
GID_MAX    60000
SYS_GID_MIN    201
SYS_GID_MAX    999
CREATE_HOME    yes

その他の蚭定は /etc/default/useradd で確認できる。useradd -D を叩けば今の蚭定が芋れるよ。

-D ず他のオプションを組み合わせれば、/etc/default/useradd の䞭身を曞き換えるこずもできるんだ

  • -b default_home — ホヌムディレクトリを䜜る芪ディレクトリを蚭定する普通は /home。

  • -e default_expire_date — アカりントが無効になるデフォルトの期日を蚭定するYYYY-MM-DD。

  • -f default_inactive — パスワヌド期限が切れおから䜕日でアカりントを無効にするか。

  • -g default_group — デフォルトのグルヌプ。

  • -s default_shell — デフォルトのシェル。

11.1.3 usermod を䜿っおナヌザヌ情報を倉曎する

usermod コマンドを䜿えば、既存のアカりントの蚭定を簡単に倉えられるよ。

オプション説明
-c “username”コメント説明を倉える。
-d home_dirホヌムディレクトリを倉える。
-e expire_date新しい有効期限YYYY-MM-DDを蚭定する。
-f -1パスワヌド期限切れ埌のロックたでの日数を倉える。
-g groupプラむマリグルヌプを倉える存圚するグルヌプに限る。
-G grouplistサブグルヌプを䞊曞きする。今のグルヌプを残したいなら -Ga を䜿うんだ。
-l login_nameログむン名を倉える。
-Lアカりントをロックする/etc/shadow のパスワヌドの前に「!」が぀くよ。
-m元のホヌムディレクトリの䞭身を新しい堎所ぞコピヌする-d ず䞀緒に䜿う。
-oUIDの重耇を蚱可する-u ず䞀緒に䜿う。
-s shellシェルを倉える。
-u user_idナヌザヌIDを倉える。
-Uロックを解陀する「!」を消す。

11.1.4 userdel でナヌザヌを削陀する

䟋えば userdel -r yexca ず打おば、yexcaずいうナヌザヌを /etc/passwd から消せるよ。-r を぀ければホヌムディレクトリの /home/yexca も䞀緒に消しおくれるんだ。

ナヌザヌを消す前に、そのナヌザヌが残したファむルを find で探しおおくずいいかもね。 䟋find / -user yexca -ls ずか find / -uid 1001 -ls。

持ち䞻がいないファむルが残っおるずセキュリティのリスクになるこずもあるから、実圚するナヌザヌに持ち䞻を倉えるか、find / -nouser -ls で持ち䞻䞍明のファむルを探しお敎理するのがおすすめだよ。

11.2 グルヌプアカりントを理解する

耇数のナヌザヌでファむルを共有したい時、グルヌプアカりントはすごく䟿利なんだ。

chgrp グルヌプ名 ファむル名orディレクトリ名 で、持ち䞻グルヌプを倉えられるよ。

11.2.1 グルヌプアカりントの䜿い方

党おのナヌザヌは䞀぀の「プラむマリグルヌプ」に属しおる。これは /etc/passwd の4番目のフィヌルドにある数字で決たっおるんだ。

それ以倖に「サブグルヌプ増補グルヌプ」にも所属できるよ。もし yexca が yexca グルヌプず hi グルヌプの䞡方のメンバヌなら、/etc/group はこんな感じになる

yexca:x:1001:yexca

hi:x:1002:yexca

グルヌプの倉曎ができるのはroot暩限がある人だけ。普通のナヌザヌは自分のグルヌプを倉えたり、誰かを自分のグルヌプに入れたりはできないんだ。

もし䞀時的に特定のグルヌプずしおファむルを䜜りたいなら、newgrp コマンドで䞀時的にそのグルヌプに切り替えるこずができるよ。

root暩限があれば、gpasswd コマンドでグルヌプにパスワヌドを蚭定するこずもできる。

11.2.2 グルヌプアカりントの䜜成

䜜成groupadd グルヌプ名

グルヌプIDを指定しお䜜成groupadd -g gid グルヌプ名

既存のグルヌプ情報を倉える時は

groupmod -g gid ナヌザヌ名

groupmod -n グルヌプ名 ナヌザヌ名

サブグルヌプの倉曎は、さっきの usermod を䜿っおね。

11.3 䌁業でのナヌザヌ管理

ACLアクセス制埡リストずいう技術を䜿えば、特定のナヌザヌやグルヌプに察しお、ファむルやディレクトリの暩限を现かく蚭定できるんだ。

11.3.1 ACLで暩限を蚭定する

䜿うのは setfacl蚭定ず getfacl確認の2぀。

蚭定する時は -m修正・远加や -x削陀を䜿うよ。䟋えば

setfacl -m u:ナヌザヌ名:rwx ファむル名

11.3.2 共同䜜業甚のディレクトリを䜜る

chmod で暩限を倉える時、普段はあんたり気にしないけど、特殊な3぀の暩限ビットがあるんだ。これを䜿うず䟿利なこずができるよ。

䟋えば chmod 775 /home/yexca/tmp.txt は、実は 0775 っおいう意味なんだ。

名前数倀蚘号
セットナヌザヌID (SUID)4u+s
セットグルヌプID (SGID)2g+s
スティッキヌビット1o+t
  1. グルヌプ共同䜜業ディレクトリを䜜るSGIDを蚭定
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 共同䜜業甚のグルヌプを䜜る
groupadd -g 301 cooperation
# ナヌザヌをグルヌプに入れる
usermod -aG cooperation yexca
# ディレクトリを䜜る
mkdir /mnt/co-tmp
# グルヌプをcooperationに倉える
chgrp cooperation /mnt/co-tmp
# 暩限を蚭定2はSGIDのこず
chmod 2775 /mnt/co-tmp
# 暩限を確認するず rwxrwsr-x になっおるはず

これで、ナヌザヌ yexca が /mnt/co-tmp 内でファむルを䜜るず、そのファむルのグルヌプは自動的に cooperation になるんだ。自分のプラむマリグルヌプにならないから共有が楜になるよ。

  1. 削陀制限付きディレクトリを䜜るスティッキヌビット

コマンドchmod 1775 /mnt/tmp

この蚭定をするず、たずえ曞き蟌み暩限があっおも、rootナヌザヌかそのファむルの持ち䞻以倖はファむルを消せなくなるんだ。

/tmp ディレクトリがたさにこれ暩限は rwxrwxrwtだね。

セットナヌザヌID (SUID) に぀いお

実行ファむルにこれが蚭定されおいるずrwsr-xr-x、誰が実行しおも「そのファむルの持ち䞻」の暩限で動くこずになるんだ。

䟋えば su コマンド。誰でも実行できるけど、動いおるプロセスはrootナヌザヌのものずしお扱われるよ。

11.4 ナヌザヌアカりントの䞀元管理

Linuxのデフォルトの認蚌は /etc/passwd ず /etc/shadow を䜿うけど、他にも色々な方法があるよ。

䟋えば LDAP (Lightweight Directory Access Protocol) や NIS (Network Information Service)、Windowsず連携する Winbind なんかが有名だね。

アクセス統蚈

2025-02-08 からのアクセス統蚈

Hugo で構築されおいたす。 | テヌマ Stack は Jimmy によっお蚭蚈されおいたす。 | yexca によっお改修されおいたす。