■ はじめに
Linux のパーミッション周りをメモ。
目次
【1】パーミッションの確認 1)アクセス権限の見方 【2】アクセス権の変更 1)コマンド例 【3】パーミッション例 1)777 2)755 3)764 4)666 5)644 【4】ファイル/ディレクトリの所有者を変更する 1)コマンド例
【1】パーミッションの確認
ls -l
1)アクセス権限の見方
d rwx rwx rwx - --- --- --- 1 2 3 4
【項目】
1) ファイル種別(ファイル(-)/ディレクトリ(d)/シンボリックリンク(l)) 2) 所有者(その対象物の所有者に対しての権限) 3) 所有グループ(所有者が所属しているグループに対しての権限) 4) その他(上記以外の利用者に対しての権限)
【パーミッション】
* r : 読み込み権限 (Read) * w : 書き込み権限 (Write) * x : 実行権限 (eXecute) * - : 許可しない * s : SUID
【2】アクセス権の変更
chmod : change mode? chmod [権限] [ディレクトリ/ファイル] # [権限]は、「所有者」「所属グループ」「その他ユーザー」の順で指定
1)コマンド例
例1
# ファイル "startup.sh" を全てのユーザに読み/書き/実行権限を付与 chmod 777 startup.sh
例2
# ファイル "startup.sh" の権限を以下のように付与 chmod 755 startup.sh + その所有者は読み出せて、書き込めて、実行できる + そのグループは、読み出せて、実行できる(書き込みは不可) + その他のユーザは、読み出せて、実行できる(書き込みは不可)
例3
# ディレクトリ "tomcat" およびその配下のディレクトリ・ファイルを # 全てのユーザに読み/書き/実行権限を付与 chmod -R 777 tomcat
例4
# 実行権限を付ける chmod +x /etc/init.d/tomcat
例5
# u(所有者に)+(権限を与える)x(実行権限) chmod u+x /etc/init.d/tomcat # u(所有者に)-(権限を外す)x(実行権限) chmod u-x /etc/init.d/tomcat
【3】パーミッション例
1)777
* 全てのユーザに対して、読み書き実行可能 4(r)+ 2(w)+ 1(x)= 7
使用上の注意
https://techtarget.itmedia.co.jp/tt/news/2207/06/news01.html
より抜粋 ~~~~~~~~~~~~~~ Linuxで「777」を設定してはいけない理由 chmodで「777」のパーミッションを設定するのは避けた方がよい。それは ・匿名ユーザーであっても、ファイルの実行を許可することになる からだ。 777のパーミッションは、攻撃者がWebサーバに不正侵入するのを 許容してしまう。 エンドユーザーが、本来は扱うことができないファイルを 気付かずに編集、実行してしまうリスクももたらす。 ~~~~~~~~~~~~~~
2)755
* 誰でも読込みと実行はできるが、書き込みは自分だけ (例えば「スクリプト」「ディレクトリ」)
3)764
https://techtarget.itmedia.co.jp/tt/news/2206/15/news02.html
より抜粋 ~~~~~~~~~~~~~~ 764は「nginx」などのWebサーバで利用する アップロード用フォルダによく割り当てられるパーミッション ~~~~~~~~~~~~~~
4)666
* 自分もグループメンバも他人も、読み書き可能
5)644
* 自分は読み書き可能だが、 グループメンバや他人は読み込みしかできない (例えば、「(静的な)HTMLファイル」「画像」などのリソース)
【4】ファイル/ディレクトリの所有者を変更する
chown : change owner? chown -c [所有者]:[所有グループ] [ディレクトリ/ファイル]
1)コマンド例
例1
# ディレクトリ "tomcat" およびその配下のディレクトリ・ファイル所有者を # ユーザadmin/にグループadmingroupに変更する chmod -R -c admin:admingroup tomcat
関連記事
ケーパビリティ(POSIX Capability)
https://dk521123.hatenablog.com/entry/2014/08/16/235803