LINUX-PERMISSIONS41 cmd
Linux パーミッション / 特殊ビット / Capabilities チート集
chmod/chown、setuid/setgid/sticky bit、ACL、Linux capabilities、umask、systemd UMask、chattr/lsattr の実務で使う権限操作をまとめたチート集。
- 更新日
- 2026-05-14
- 参照範囲
- 公式ドキュメント / man page / 主要ベンダーCLI
- 対象実装
- 主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
- 免責
- OS とバージョン差分は実環境で確認してください。
41 / 41
| Command | Description | Example | Copy |
|---|---|---|---|
chmod 644 file | 所有者 rw、group/other r にする。 | chmod 644 /var/www/html/index.html | |
chmod 755 dir | 所有者 rwx、group/other rx にする。 | chmod 755 /usr/local/bin/deploy | |
chmod u+x | 所有者に実行権限を追加する。 | chmod u+x ./script.sh | |
chmod g-w,o-rwx | group 書込と other 全権限を外す。 | chmod g-w,o-rwx secrets.txt | |
chmod -R | 再帰的に権限を変更する。 | chmod -R u=rwX,g=rX,o= /srv/app | |
chmod --reference | 別ファイルの権限を参照して合わせる。 | chmod --reference=/etc/hosts ./hosts.copy | |
chown user:group | 所有者と group を変更する。 | sudo chown app:app /srv/app/config.yml | |
chown -R | ディレクトリ配下の所有者を再帰変更する。 | sudo chown -R app:app /srv/app/releases/current | |
chgrp | group だけ変更する。 | sudo chgrp www-data /srv/app/public | |
find -perm 0777 | 危険な 777 ファイルを探す。 | find /srv/app -perm 0777 -ls | |
find -perm /022 | group/other 書込可能を探す。 | find /srv/app -perm /022 -type f -ls | |
install -m | 作成時に mode/owner を指定する。 | sudo install -o root -g root -m 0644 nginx.conf /etc/nginx/nginx.conf | |
setuid numeric | setuid を数値表記で付ける。 | sudo chmod 4755 /usr/local/bin/helper | |
setuid symbolic | setuid をシンボリック表記で付ける。 | sudo chmod u+s /usr/local/bin/helper | |
setgid file | 実行時 group を固定する。 | sudo chmod 2755 /usr/local/bin/group-helper | |
setgid directory | 配下作成物に group を継承させる。 | sudo chmod 2775 /srv/shared | |
sticky bit | 共有ディレクトリで所有者以外の削除を防ぐ。 | sudo chmod 1777 /srv/dropbox | |
ls -l special | s/t 表記を確認する。 | ls -ld /tmp /srv/shared /usr/bin/passwd | |
getfacl | ACL を表示する。 | getfacl /srv/app/config.yml | |
setfacl -m user | ユーザー ACL を追加する。 | setfacl -m u:alice:rwx /srv/app/uploads | |
setfacl -m group | グループ ACL を追加する。 | setfacl -m g:deploy:rx /srv/app/releases | |
setfacl default | default ACL を設定する。 | setfacl -d -m g:www-data:rwx /srv/app/uploads | |
setfacl mask | ACL mask を明示する。 | setfacl -m m::rwx /srv/app/uploads | |
setfacl -x | ACL エントリを削除する。 | setfacl -x u:alice /srv/app/uploads | |
setfacl -b | 全 ACL を削除する。 | setfacl -b /srv/app/uploads | |
getcap | ファイル capability を確認する。 | getcap -r /usr/bin /usr/sbin 2>/dev/null | |
setcap cap_net_bind_service | 非 root に 1024 未満 port bind を許可する。 | sudo setcap cap_net_bind_service=+ep /usr/local/bin/webserver | |
setcap -r | capability を削除する。 | sudo setcap -r /usr/local/bin/webserver | |
CAP_NET_ADMIN | ネットワーク設定変更 capability。tcpdump や ip link 操作に関係。 | setcap cap_net_admin,cap_net_raw=+ep /usr/sbin/tcpdump | |
CAP_SYS_ADMIN | 広範で強力な capability。安易に付与しない。 | getpcaps $$ | |
CAP_NET_BIND_SERVICE | 1024 未満 port bind を許可する。 | setcap cap_net_bind_service=+ep /usr/local/bin/nginx-wrapper | |
CAP_DAC_OVERRIDE | 通常の DAC 権限チェックを迂回する。付与は最小限にする。 | capsh --print | grep cap_dac_override | |
CAP_KILL | 他 UID プロセスへ signal を送る権限。 | capsh --print | grep cap_kill | |
umask 022 | 新規 file 644、dir 755 相当の既定 mask。 | umask 022 | |
umask 027 | other 権限を落とすサーバ向け mask。 | umask 027 | |
bash umask | shell 起動時の既定 umask を設定する。 | echo "umask 027" >> ~/.bashrc | |
systemd UMask | unit 単位で umask を指定する。 | [Service]
UMask=0027 | |
lsattr | 拡張属性を確認する。 | lsattr /etc/resolv.conf | |
chattr +i | immutable にして変更を防ぐ。 | sudo chattr +i /etc/resolv.conf | |
chattr +a | append only にする。 | sudo chattr +a /var/log/audit/audit.log | |
SELinux/AppArmor note | SELinux/AppArmor は別の MAC レイヤー。ここでは範囲外。 | 権限が正しいのに拒否される場合は getenforce や aa-status も確認 |