LinuCレベル1 ファイル・ディレクトリの操作と管理 問18
ファイル・ディレクトリの操作と管理/ファイルの所有者とパーミッショングループで共有するディレクトリ /share に対して chmod g+s /share を実行した。この設定の効果として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「ファイル・ディレクトリの操作と管理」に対応。実際の試験問題ではありません)
- A/share 内のファイルは、ファイルの所有者以外のユーザーが削除や名前の変更をできなくなる
- B/share 内の実行ファイルは、実行したユーザーではなく、ファイル所有者の権限で動作する
- C/share 内のファイルは、グループのメンバーであっても内容を読み取り専用でしか開けなくなる
- D/share 内で新しく作成したファイルは、作成者の所属にかかわらず /share と同じグループになる
正解:D
解説
chmod g+s は、グループのSGIDビットを設定する操作です。ディレクトリにSGIDを設定すると、その中で新しく作成されたファイルやサブディレクトリのグループが、作成したユーザーの基本グループではなく、そのディレクトリのグループに設定されます。このため、複数のユーザーで共有するディレクトリでグループをそろえたいときに使われます。ls -l では、グループの実行権の位置に s(実行権が無い場合は S)と表示されます。なお実行ファイルにSGIDを設定した場合は、ファイルのグループの権限で実行される、という別の意味になります。
選択肢ごとの解説
- A誤り。所有者以外による削除や名前変更を禁止するのはスティッキービット(chmod +t)の効果です。
- B誤り。実行したユーザーではなくファイル所有者の権限で動作させるのは、実行ファイルに設定するSUID(chmod u+s)の効果です。
- C誤り。SGIDはグループの読み書きの権限を制限するものではありません。読み取り専用にするにはグループの書き込み権を外します。
- D正しい。ディレクトリにSGIDを設定すると、その中で作成されたファイルはディレクトリと同じグループの所有になります。