chmodと数値・シンボリック表記のコマンド/運用演習

開発チームが共有するreportの権限を設計します。誰に何を許すかを先に表にし、数値への変換、変更コマンド、変更後の確認を順に行います。全例で通常利用者を想定し、特記がなければACL・特殊ビット・SELinux等の追加制約はないものとします。

この単元で学ぶこと

  • 所有者・グループ・その他の判定を説明できる
  • 数値とシンボリック表記で標準権限を変更できる
  • ファイルの内容変更と名前の削除に必要な権限を区別できる

本文解説

事例の利用者 reportの所有者はalice、所有グループはdevです。bobはdevに所属し、carolはdevに所属しません。aliceは所有者、bobはグループ、carolはその他の組を使います。alice自身もdevに所属していても、所有者とグループの許可を合算しません。

要件から640を作る aliceは読み書き、bobは読取り、carolはアクセス不可とします。通常ファイルなので実行は不要です。所有者は4+2=6、グループは4、その他は0で640になります。読取り可能であるためにはreportの親ディレクトリまで探索できることも必要です。

編集者を増やす bobにも編集を許す変更はchmod g+w reportです。640から660になり、aliceとbobは読み書きできます。carolの組は0のままです。全員へ書込みを足すa+wや、全権限を与える777は、要件にない対象まで広げます。

共有を終了する グループとその他の許可を全部外し、所有者の読み書きを維持するならchmod go-rwx reportで660から600になります。chmod g=w reportはグループを「書込みだけ」へ置き換えるので、640から620になります。追加の+と置換の=を同じ意味で読まないでください。

共有ディレクトリを考える teamディレクトリが750ならaliceは一覧取得・探索・名前の追加削除が可能、bobは一覧取得と探索が可能、carolは不可です。bobにteam内の名前の追加削除も許すなら770が候補です。ファイルの内容を読めるかは、そのファイル自身のmodeも調べます。

読取り専用と削除 reportが440でbobに内容の書込みを許さなくても、親teamが770でbobにwとxがあれば、特殊制約がない前提でbobはreportの名前を削除できる場合があります。名前の削除を禁止したい要件を、ファイルのwを外すだけで実装しないようにします。

実習の手順 自分のLinux実習環境でlesson_dir=$(mktemp -d)、printf "draft\n" > "$lesson_dir/report"を実行します。chmod 640、chmod g+w、chmod go-rwxを同じreportへ順に実行し、その都度stat -c "%a"で640、660、600を確認します。最後にchmod 640からchmod g=wへ変えて620を確認します。所有ユーザーを実際に切り替える実習とは分け、ここではmodeの変更結果を観測します。

検証を二段階にする statで数値、ls -lで所有者とグループを確認するのが設定検証です。別の利用者から実際にアクセスできるかは動作検証であり、親ディレクトリやグループ所属も含めた確認が必要です。特権ユーザーだけで読めたことを一般利用者の成功証拠にしません。実習用ファイルは内容とパスを記録し、実システムの共有ファイルへコマンドを流用しないでください。

図解

共有要件を権限へ変換
reportは640。ディレクトリの探索権と追加のアクセス制御は別に確認する。

重要ポイント

  • rwxは所有者・グループ・その他の三組で表す。
  • r=4、w=2、x=1を組ごとに足す。
  • chmodは権限、chown/chgrpは所有者・グループを変える。
  • ディレクトリのxは探索、wは名前の追加削除に関係する。

間違えやすい点

  • 所有者・グループ・その他の許可を合算しない。
  • 読取り専用ファイルだから削除できない、と判断しない。
  • chmodで許可した操作がACLやSELinux等にも必ず許されると思わない。

用語解説

所有者
ファイルを所有するユーザー。
所有グループ
ファイルに設定されたグループ。該当利用者にはグループの組を適用する。
mode
読取り・書込み・実行などの許可を表すビットの組。
探索権
ディレクトリ内の名前を使い配下へ到達するためのx権限。
シンボリック表記
u/g/o/aとr/w/xなどを組み合わせて権限変更を表す方法。

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。