chmodコマンド
ファイルまたはディレクトリに対する権限を設定するコマンドです。
まずは管理者権限のrootに入ります。
$ sudo su -
root# touch zoo #ファイル作成
root# ls
.CFUserTextEncoding .forward zoo
.bash_history Library
root# ls -1
.CFUserTextEncoding
.bash_history
.forward
Library
zoo
root# ls -li
total 24
355541 -rw-r--r-- 1 root wheel 4 Jun 6 2020 .CFUserTextEncoding
24086928 -rw------- 1 root wheel 491 Jun 30 18:17 .bash_history
20949 -r--r--r-- 1 root wheel 10 Mar 1 2020 .forward
20945 drwxr-xr-x 19 root wheel 608 Dec 31 2020 Library
35823050 -rw-r--r-- 1 root wheel 0 Jul 12 15:55 zoo
root# chmod 000 zoo
chmod 000 zooを実行すると
root# ls -li
total 24
355541 -rw-r--r-- 1 root wheel 4 Jun 6 2020 .CFUserTextEncoding
24086928 -rw------- 1 root wheel 491 Jun 30 18:17 .bash_history
20949 -r--r--r-- 1 root wheel 10 Mar 1 2020 .forward
20945 drwxr-xr-x 19 root wheel 608 Dec 31 2020 Library
35823050 ---------- 1 root wheel 0 Jul 12 15:55 zoo
zooの権限が無くなってしまっています。
なぜ無くなったかは下の権限を参考にしてみてください。
権限について
こちらは参考資料から引用致します。
- 権限の区分(設定する範囲)
所有者権限 | グループ権限 | その他のユーザーの権限 |
---|
- 権限の基本種類(他にもある)
読み込み権限 | 書き込み権限 | 実行権限 |
---|---|---|
r | w | x |
権限の範囲
数値0~7で各区分(ユーザーグループ)が所有する権限の範囲を設定。区分が3種なので3桁の数値で設定する。0 は権限が無く、7 は全ての権限を有する。
数値 | 権限 | 内容 |
---|---|---|
0 | --- | 権限なし |
1 | --x | 実行できるよ |
2 | -w- | 書き込みできるよ |
3 | -wx | 書込・実行できるよ |
4 | r-- | 読み込みできるよ |
5 | r-x | 読込・実行できるよ |
6 | rw- | 読込・書込みできるよ |
7 | rwx | 読込・書込・実行できるよ |
chmodを色々使ってみる
上の表を参考に色々動かしていきます。権限が無いところから始めます。
root# ls -li
total 24
355541 -rw-r--r-- 1 root wheel 4 Jun 6 2020 .CFUserTextEncoding
24086928 -rw------- 1 root wheel 491 Jun 30 18:17 .bash_history
20949 -r--r--r-- 1 root wheel 10 Mar 1 2020 .forward
20945 drwxr-xr-x 19 root wheel 608 Dec 31 2020 Library
35823050 ---------- 1 root wheel 0 Jul 12 15:55 zoo
200で書き込み権限のみが付与されます。
root# chmod 200 zoo
root# ls -li
total 24
# 省略
35823050 --w------- 1 root wheel 0 Jul 12 15:55 zoo
400で読み込み権限のみが付与されます。
root# chmod 400 zoo
root# ls -li
total 24
# 省略
35823050 -r-------- 1 root wheel 0 Jul 12 15:55 zoo
600で読み込みと書き込み権限のみが付与されます。
root# chmod 600 zoo
root# ls -li
total 24
# 省略
35823050 -rw------- 1 root wheel 0 Jul 12 15:55 zoo
次に755を実行し、実行権限を全て、読み込みと実行権限が付与されます。
root# chmod 755 zoo
MacBook-Pro-3:~ root# ls -li
total 24
# 省略
35823050 -rwxr-xr-x 1 root wheel 0 Jul 12 15:55 zoo
744も実行し、所有ユーザーは、実行権限を全てあり、グループは読み込みのみができ、その他は読み込みだけできるようにしていきます。
root# chmod 744 zoo
MacBook-Pro-3:~ root# ls -li
total 24
# 省略
35823050 -rwxr--r-- 1 root wheel 0 Jul 12 15:55 zoo
権限指定時の記法記号
下の表も引用させていただきます。
上のように数字ではなく記号でも指定できます。
記号 | 意味 |
---|---|
u | 所有者の権限 |
g | グループの権限 |
o | その他のユーザーの権限 |
a | すべての権限 |
+ | 後に記述した権限を付加する |
- | 後に記述した権限を削除する |
= | 後に記述した権限にする |
r | 読み込み権限 |
w | 書き込み権限 |
x | 実行権限 |
s | セットID |
t | スティッキ・ビット |
グループに読み込みと書き込み権限を付与するコマンドです。
root# chmod g+rw zoo
root# ls -li
total 24
# 省略
35823050 ----rw---- 1 root wheel 0 Jul 12 15:55 zoo
その他ユーザーに全権限を付与するコマンドです。
root# chmod o+rwx zoo
root# ls -li
total 24
# 省略
35823050 ----rw-rwx 1 root wheel 0 Jul 12 15:55 zoo
所有者(ユーザー)とグループに実行権限付与するコマンドです。
root# chmod ug+x zoo
root# ls -li
total 24
# 省略
35823050 ---xrwxrwx 1 root wheel 0 Jul 12 15:55 zoo
-を使って権限を削除してみます。
root# chmod g-wx zoo
root# ls -li
total 24
# 省略
35823050 ---xr--rwx 1 root wheel 0 Jul 12 15:55 zoo
ここは一例ですが色々試してみてください。
個人的には数字の方がやりやすいかなと思います。
chown
指定したファイル、ディレクトリの所有するユーザー、グループの変更するコマンドです。
-R
ディレクトリの中身の所有者も再帰的に変更します。
root# chown new_user file.txt
root# chown new_user:new_group file.txt
ユーザーの追加
useraddコマンド
OS上にユーザーを追加するコマンドです。 rootユーザーで実行します。
$ useradd new_user
オプションもあります。
/etc/passwd
作成されたユーザー一覧が記述されているファイル
root# less /etc/passwd
ユーザー更新、削除
●usermod
ユーザー情報を変更するコマンドです。
root# usermod -c "I add new comment" new_user
root# cat /etc/passwd
オプションはこの記事に載っています。
●userdel
ユーザー情報を変更するコマンドです。
root# userdel new_user
⚫︎groupadd
グループを追加するコマンドです。
root#groupadd new_group
⚫︎groupdel
グループを削除するコマンドです。
root#groupdel new_group
⚫︎groupmod
グループ情報の変更をするコマンドです。
root#groupmod -n new_group new_user
⚫︎passwd
ユーザーのパスワードを変更するコマンドです。
root#passwd test
資料