setfacl セットエフエーシーエル

英語表記setfacl

日本語表記ACL設定

略称ACL

正式名称setfacl

危険度注意

What does it mean?

ファイルやディレクトリへACLを設定します。個別ユーザーやグループへ細かな権限を与える時に有効ですが、maskや既定ACLの理解が必要です。

Command Quest

setfacl を今日の道具にする

ファイルやディレクトリへACLを設定します。個別ユーザーやグ...

$ setfacl [オプション]... { -m | -x } ACL記述 ファイル... setfacl [オプション]... -b ファイル... setfacl [オプション]... --restore=バックアップファイル
関連用語1
次のコマンド0
FAQ2
参照3

概要

ファイルやディレクトリへACLを設定します。個別ユーザーやグループへ細かな権限を与える時に有効ですが、maskや既定ACLの理解が必要です。

基本構文

setfacl [オプション]... { -m | -x } ACL記述 ファイル...
setfacl [オプション]... -b ファイル...
setfacl [オプション]... --restore=バックアップファイル

詳細解説

setfaclは、ファイルやディレクトリに対してアクセス制御リストを追加、変更、削除するコマンドです。chmodが三者向けの基本権限を扱うのに対し、setfaclは個別ユーザーや個別グループへの例外的な権限制御を扱えます。

共有ディレクトリで特定ユーザーへだけ書き込み権を与える、ディレクトリへ既定ACLを設定して新規作成物へ継承させる、といった運用で有効です。

設定後はgetfaclで結果を確認し、maskや継承の影響まで読み直す習慣が重要です。

このコマンドを使う場面

共有ディレクトリで特定ユーザーやグループへ例外的な権限を与えたい時、既定ACLで継承ルールを作りたい時に使います。

まず安全に試す方法

1. touch sample.txt
2. setfacl -m u:$(id -un):rw sample.txt
3. getfacl sample.txt
4. setfacl -b sample.txt

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. 検証用ファイルへ自分自身のACLを追加し、出力の意味を読み取ります。

  2. setfacl -bを実行し、追加前後の差を確認します。

資格試験との関連

  • LinuC レベル2
    範囲: 2.11.1 Sambaの設定と管理
    根拠: official
    LinuCレベル2では、Sambaや共有設定の文脈でアクセス制御リストの理解が求められ、getfaclやsetfaclが重要な補助コマンドになります。
  • LPIC-2
    範囲: 共有環境の権限制御
    根拠: editorial
    LPIC-2では、共有や権限制御の理解を深める補助知識としてACL操作の理解が役立ちます。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    試験横断で、setfaclはLinux運用の基礎体力を支える重要なコマンドです。

オプション

  • -m ACL記述
    ACLを追加または変更します。
    setfacl -m u:alice:rw file.txt
  • -x ACL記述
    指定エントリーを削除します。
    setfacl -x u:alice file.txt
  • -b
    拡張ACLをすべて削除します。
    setfacl -b file.txt
  • -R
    配下へ再帰的に適用します。
    setfacl -R -m g:project:rx shared

実行結果サンプル

  • setfacl -m u:alice:rw sample.txt getfacl sample.txt
    user::rw-
    user:alice:rw-
    group::r--
    mask::rw-
    other::r--
  • setfacl -m d:g:project:rwx shared getfacl shared
    default:group:project:rwx...

戻り値コード

  • 0 正常終了。ACL変更に成功しました。
  • >0 権限不足、ACL記述不正、対象不存在、ACL非対応などで変更できませんでした。

使用例

  • setfacl -m u:alice:rw file.txt
  • setfacl -m g:project:rwx shared
  • setfacl -x u:alice file.txt
  • setfacl -b file.txt

よくあるエラー

  • 設定したのに期待どおりにならない
    原因: mask行が実効権限を制限しているか、ファイルシステムがACLを十分に扱えていません。
    対処: getfaclでmaskを確認し、必要なら調整します。
  • Operation not supportedと表示される
    原因: 対象ファイルシステムがACLに対応していないか、マウント設定で無効です。
    対処: ファイルシステム種別とマウントオプションを確認します。

導入・互換性情報

POSIX必須ではなく、ACL対応環境と追加パッケージに依存することがあります。Linuxではaclパッケージに含まれることが多いです。

注意点 / セキュリティリスク

危険度は中程度です。ACLは柔軟な反面、設定意図が見えにくくなりやすく、保守性を下げることがあります。設定後の確認が必須です。

FAQ

  • Q. chmodだけでは駄目ですか。
    A. 単純な三者向け権限制御で足りるなら十分です。個別ユーザーや個別グループへの例外設定が必要な時にsetfaclを使います。
  • Q. 設定後は何を確認すべきですか。
    A. getfaclで結果を確認し、必要なら対象ユーザーで実アクセス確認まで行うのが安全です。

関連用語

  • ACL

参照リンク

関連記事