LOG

ユーザー・グループ・ファイル権限コマンド

ユーザー管理

ユーザー情報

$ id ユーザー名

ユーザー情報(一覧)

ユーザー情報は「/etc/passwd」に入っている

$ cat /etc/passwd
# vagrant:x:1000:1000:vagrant:/home/vagrant:/bin/zsh
# <ユーザー名>:<暗号化されたパスワード>:<ユーザーID>:<グループID>:<コメント>:<ホームディレクトリ>:<ログインシェル>

暗号化されたパスワードが「x」になってる場合、シャドウパスワードを使用しているという意味

ユーザー追加

$ useradd ユーザー名 -p パスワード

別途パスワードを設定、削除する場合は

# 追加
$ passwd ユーザー名
# 削除
$ passwd -d ユーザー名

他オプションにてディレクトリの指定やグループの指定もできる

ユーザー削除

$ userdel ユーザー名

「-r」オプションを付けないとホームディレクトリが消えない

ユーザー情報の変更

$ usermod オプション ユーザー名

usermodを使ったユーザーのグループの変更は既存の設定がなくなってしまうので注意が必要
参考:usermod -G でユーザに新しいサブグループを追加してはいけない


グループ管理

ユーザーのグループにはイニシャルグループ(プライマリグループ)とサブグループがある。

$ usermod ユーザー名 -g グループ名
# イニシャルグループを変更

$ usermod ユーザー名 -G グループ名
# サブグループを追加

$ newgrp グループ名
# ログイン中のユーザーでグループにログインする
# ユーザーのイニシャルグループが変更され、ログイン中はそのグループの権限が与えられる

グループ情報

$groups ユーザー名

グループ情報(一覧)

グループ情報は「/etc/group」に入っている

$ cat /etc/group
# vagrant:x:1000
# <グループ名>:<暗号化されたパスワード>:

グループ追加

$ groupadd グループ名

パスワードを設定する場合は「-p」オプションをつける。
また、パスワードを別途設定したい場合は

# 追加
$ gpasswd グループ名

# 削除
$ gpasswd -r グループ名

「gpasswd -d」はグループからユーザーを削除するので注意!

グループ削除

$ groupdel グループ名

グループのユーザー管理

# グループにユーザーを追加
$ gpasswd -a ユーザー名 グループ名

# グループにユーザーを追加
$ gpasswd -M ユーザー名(カンマ区切りで複数指定) グループ名

# グループからユーザーを削除
$ gpasswd -d ユーザー名 グループ名

# ユーザーをグループの管理者に追加
$ gpasswd -A ユーザー名(カンマ区切りで複数指定) グループ名
# 

グループの情報を変更

$ groupmod オプション グループ名

ファイル、ディレクトリ権限

ファイルの所有者を変更

$ chown ユーザー名:グループ名 ファイル名
オプション(網羅はしていません)
-R再帰的に変更
-hシンボリックリンクの所有者を変更する。
通常はリンク先のファイル所有者が変更される

ファイルのグループを変更

$ chgrp グループ名 ファイル

オプションはchownとほぼ同じ


ファイル・ディレクトリ権限の変更

$ chmod 権限 ファイル・ディレクトリ

ファイル・ディレクトリ権限の変更は「chmod」コマンドを利用する。
指定方法が2種類、「シンボルモード」と「数値モード」がある。

シンボルモード

<対象(u,g,o,a)><処理(+,-,=)><アクセス権>
で指定し、複数指定する場合はカンマ区切りにする

$ chmod u=rwx,g+r,o+r file.txt
# 所有者→読み込み、書き込み、実行可能
# グループ→読み込み可能
# その他→読み込み可能
対象対象説明処理処理説明アクセス権アクセス権説明
u所有者+追加r読み込み権限
gグループ削除w書き込み権限
oその他=変更x実行権限
a全て

アクセス権は他にも「X,s,t,u,g,o」などがある。

数値モード

数値モードは0〜7の値を3桁(本当は4桁)で設定する
3桁の値は左から「所有者」「グループ」「その他」となる

0〜7の値の理由は
「r → 4」「w → 2」「x → 1」「指定なし→0」とした場合、
それぞれを加算すると
全て指定なし → 0(---)
全て指定 → 7(r+w+x)
となるため。

数値モード01234567
結果-----x-w--wxr--r-xrw-rwx
$ chmod 755 file.txt

とした場合file.txtの権限は

所有者グループその他
755
4+2+14+14+1
rwxr-xr-x
読み込み、書き込み、実行読み込み、実行読み込み、実行

となる

また対象はそれぞれ位を持っており

対象
所有者100
グループ10
その他1

それぞれの権限を乗算すると

対象 + 権限
所有者 読み込み権限400
所有者 書き込み権限200
所有者 実行権限100
グループ 読み込み権限40
グループ 書き込み権限20
グループ 実行権限10
その他  読み込み権限4
その他  書き込み権限2
その他  実行権限1

となるため

所有者→rwx   = 700  
グループ→r-x = 50
その他→r-x   = 5

700+50+5 = 755

となる。