InfraLab
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

CommandDescriptionExampleCopy
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-rwxgroup 書込と 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
chgrpgroup だけ変更する。sudo chgrp www-data /srv/app/public
find -perm 0777危険な 777 ファイルを探す。find /srv/app -perm 0777 -ls
find -perm /022group/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 numericsetuid を数値表記で付ける。sudo chmod 4755 /usr/local/bin/helper
setuid symbolicsetuid をシンボリック表記で付ける。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 specials/t 表記を確認する。ls -ld /tmp /srv/shared /usr/bin/passwd
getfaclACL を表示する。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 defaultdefault ACL を設定する。setfacl -d -m g:www-data:rwx /srv/app/uploads
setfacl maskACL mask を明示する。setfacl -m m::rwx /srv/app/uploads
setfacl -xACL エントリを削除する。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 -rcapability を削除する。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_SERVICE1024 未満 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 027other 権限を落とすサーバ向け mask。umask 027
bash umaskshell 起動時の既定 umask を設定する。echo "umask 027" >> ~/.bashrc
systemd UMaskunit 単位で umask を指定する。[Service] UMask=0027
lsattr拡張属性を確認する。lsattr /etc/resolv.conf
chattr +iimmutable にして変更を防ぐ。sudo chattr +i /etc/resolv.conf
chattr +aappend only にする。sudo chattr +a /var/log/audit/audit.log
SELinux/AppArmor noteSELinux/AppArmor は別の MAC レイヤー。ここでは範囲外。権限が正しいのに拒否される場合は getenforce や aa-status も確認
Related