InfraLab
LINUX-PERMISSIONS41 cmd

Linux パーミッション / 特殊ビット / Capabilities チート集

chmod/chown、setuid/setgid/sticky bit、ACL、Linux capabilities、umask、systemd UMask、chattr/lsattr の実務で使う権限操作をまとめたチート集。

更新日
2026-05-29
参照範囲
公式ドキュメント / man page / 主要ベンダーCLI
対象実装
主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
免責
OS とバージョン差分は実環境で確認してください。

このチートシートの使いどころ

Linux パーミッション / 特殊ビット / Capabilities チート集は、chmod/chown、setuid/setgid/sticky bit、ACL、Linux capabilities、umask、systemd UMask、chattr/lsattr の実務で使う権限操作をまとめたチート集。 対象は公式ドキュメント、man page、主要ベンダー CLI で確認できる現行の一般的な実装です。カテゴリはchmod-chown、特殊ビット、ACL (setfacl)、Capabilities、umask-attrを中心に、41件のコマンドや値を用途別に引けます。障害調査、設定変更前の確認、作業メモ作成で、Linux、permissions、chmod、chown、setfaclに関連する操作を短時間で探すために使います。

41 / 41

chmod 644 file

所有者 rw、group/other r にする。

Example
chmod 644 /var/www/html/index.html
chmod 755 dir

所有者 rwx、group/other rx にする。

Example
chmod 755 /usr/local/bin/deploy
chmod u+x

所有者に実行権限を追加する。

Example
chmod u+x ./script.sh
chmod g-w,o-rwx

group 書込と other 全権限を外す。

Example
chmod g-w,o-rwx secrets.txt
chmod -R

再帰的に権限を変更する。

Example
chmod -R u=rwX,g=rX,o= /srv/app
chmod --reference

別ファイルの権限を参照して合わせる。

Example
chmod --reference=/etc/hosts ./hosts.copy
chown user:group

所有者と group を変更する。

Example
sudo chown app:app /srv/app/config.yml
chown -R

ディレクトリ配下の所有者を再帰変更する。

Example
sudo chown -R app:app /srv/app/releases/current
chgrp

group だけ変更する。

Example
sudo chgrp www-data /srv/app/public
find -perm 0777

危険な 777 ファイルを探す。

Example
find /srv/app -perm 0777 -ls
find -perm /022

group/other 書込可能を探す。

Example
find /srv/app -perm /022 -type f -ls
install -m

作成時に mode/owner を指定する。

Example
sudo install -o root -g root -m 0644 nginx.conf /etc/nginx/nginx.conf
setuid numeric

setuid を数値表記で付ける。

Example
sudo chmod 4755 /usr/local/bin/helper
setuid symbolic

setuid をシンボリック表記で付ける。

Example
sudo chmod u+s /usr/local/bin/helper
setgid file

実行時 group を固定する。

Example
sudo chmod 2755 /usr/local/bin/group-helper
setgid directory

配下作成物に group を継承させる。

Example
sudo chmod 2775 /srv/shared
sticky bit

共有ディレクトリで所有者以外の削除を防ぐ。

Example
sudo chmod 1777 /srv/dropbox
ls -l special

s/t 表記を確認する。

Example
ls -ld /tmp /srv/shared /usr/bin/passwd
getfacl

ACL を表示する。

Example
getfacl /srv/app/config.yml
setfacl -m user

ユーザー ACL を追加する。

Example
setfacl -m u:alice:rwx /srv/app/uploads
setfacl -m group

グループ ACL を追加する。

Example
setfacl -m g:deploy:rx /srv/app/releases
setfacl default

default ACL を設定する。

Example
setfacl -d -m g:www-data:rwx /srv/app/uploads
setfacl mask

ACL mask を明示する。

Example
setfacl -m m::rwx /srv/app/uploads
setfacl -x

ACL エントリを削除する。

Example
setfacl -x u:alice /srv/app/uploads
setfacl -b

全 ACL を削除する。

Example
setfacl -b /srv/app/uploads
getcap

ファイル capability を確認する。

Example
getcap -r /usr/bin /usr/sbin 2>/dev/null
setcap cap_net_bind_service

非 root に 1024 未満 port bind を許可する。

Example
sudo setcap cap_net_bind_service=+ep /usr/local/bin/webserver
setcap -r

capability を削除する。

Example
sudo setcap -r /usr/local/bin/webserver
CAP_NET_ADMIN

ネットワーク設定変更 capability。tcpdump や ip link 操作に関係。

Example
setcap cap_net_admin,cap_net_raw=+ep /usr/sbin/tcpdump
CAP_SYS_ADMIN

広範で強力な capability。安易に付与しない。

Example
getpcaps $$
CAP_NET_BIND_SERVICE

1024 未満 port bind を許可する。

Example
setcap cap_net_bind_service=+ep /usr/local/bin/nginx-wrapper
CAP_DAC_OVERRIDE

通常の DAC 権限チェックを迂回する。付与は最小限にする。

Example
capsh --print | grep cap_dac_override
CAP_KILL

他 UID プロセスへ signal を送る権限。

Example
capsh --print | grep cap_kill
umask 022

新規 file 644、dir 755 相当の既定 mask。

Example
umask 022
umask 027

other 権限を落とすサーバ向け mask。

Example
umask 027
bash umask

shell 起動時の既定 umask を設定する。

Example
echo "umask 027" >> ~/.bashrc
systemd UMask

unit 単位で umask を指定する。

Example
[Service] UMask=0027
lsattr

拡張属性を確認する。

Example
lsattr /etc/resolv.conf
chattr +i

immutable にして変更を防ぐ。

Example
sudo chattr +i /etc/resolv.conf
chattr +a

append only にする。

Example
sudo chattr +a /var/log/audit/audit.log
SELinux/AppArmor note

SELinux/AppArmor は別の MAC レイヤー。ここでは範囲外。

Example
権限が正しいのに拒否される場合は getenforce や aa-status も確認
対応ツール
Related