1.06.2基礎
report.shは所有者が読み書きできる通常ファイルである。
既存の読み書き権を保ち、所有者へ実行権だけを追加する。
適切なコマンドはどれか。
× 不正解
chmod u+x FILEは所有者の実行ビットを追加する記号形式で、指定していない権限ビットは維持される。
詳細解説
正しい
chmod u+x report.sh所有者クラスへ実行ビットを追加し、ほかの既存ビットを保つ。
chmodのuは所有者、+は追加、xは実行ビットを表す。読み書きなど指定しない既存ビットを維持したまま所有者へ実行権を加える。
誤り
chmod u-x report.sh所有者から実行ビットを削除する。
u-xは所有者の実行ビットを削除する。直接実行可能にしたい要件と逆の状態変更である。
誤り
chmod a=x report.sh全クラスを実行のみへ置き換え、既存の読み書き権を失う。
a=xは所有者・グループ・その他の権限を実行だけへ置き換える。既存の所有者読み書き権を保つ条件を満たさない。
誤り
chown u+x report.shchownは所有者を変更し、モードビットを操作しない。
chownは所有者情報を変更するコマンドで、u+xというモード指定を解釈しない。実行権の変更にはchmodを使う。
実際に確かめる
一時的な検証環境で実行できる例です。
bash -c 'f=$(mktemp); chmod 600 "$f"; chmod u+x "$f"; stat -c %A "$f"; rm -f "$f"'期待される結果
所有者がrwx、グループとその他が---の権限表示理解のポイント
- uは所有者
- +は追加
- xは実行権
確認時の注意
- 確認環境: GNU coreutils chmod/stat / 一時ファイル
- マウントオプションnoexecなどにより、実行ビットがあっても直接実行できない環境がある。
基礎のおさらい
記号形式
chmodの記号形式は対象u/g/o/a、操作+/-/=、権限r/w/xを組み合わせる。
追加と置換
+は指定ビットだけを追加し、=は対象クラスの権限を指定したビットへ置き換える。
問題IDKL-102-917
確認環境GNU coreutils chmod/stat / 一時ファイル
最終技術確認2026-08-13
誤り・権利侵害を報告