開発チームのための共同作業用権限の設定
注意:最初にステップ 2 を完了し、src を含むすべてのプロジェクトディレクトリの所有権が dev_lead:developers に設定されていることを確認してください。このステップは、それらの所有権設定に基づいています。
開発チームは ~/project/phoenix_project/src ディレクトリ内で効果的に共同作業を行う必要があります。円滑なコラボレーションを実現するために、src 内に作成される新しいファイルやディレクトリは、作成したユーザーのプライマリグループではなく、自動的に developers グループに属するようにする必要があります。
タスク
~/project/phoenix_project/src ディレクトリに特殊な権限を設定し、その中に作成されるすべての新しいファイルとサブディレクトリが、src ディレクトリ自体のグループ所有権(developers)を継承するようにしてください。
要件
~/project/phoenix_project/src 内の新しいファイルが自動的に developers グループによって所有されるようにすること。
- この特殊な権限を設定するために
chmod コマンドを使用すること。
- 他のユーザーが所有するディレクトリに権限を設定するため、
sudo が必要な場合があります。
ヒント
- この特殊な権限は「セットグループ ID」または
setgid ビットと呼ばれます。
setgid ビットは、シンボル表記 (g+s) または数値表記のいずれかを使用して適用できます。
- 数値表記では、
setgid ビットの値は 2 です。これは、標準の 3 桁の権限数字の前に配置されます(例:2770)。
例
タスク完了後、以下のような状態になっているはずです:
$ ls -ld ~/project/phoenix_project/src/
drwxrws--- 2 dev_lead developers 6 Sep 3 16:00 ~/project/phoenix_project/src/
グループの実行権限の位置にある s は、setgid ビットが設定されており、グループに実行権限があることを示しています。新しいファイルを作成すると:
$ touch ~/project/phoenix_project/src/new_file.txt
$ ls -l ~/project/phoenix_project/src/new_file.txt
-rw-rw---- 1 dev_lead developers 0 Sep 3 16:05 new_file.txt
別のユーザーとしてログインしていても、新しいファイルが自動的に developers グループに属していることに注目してください。これにより、適切なグループ所有権を維持しながら、開発チーム内での共同作業が保証されます。
権限の表示:
- 所有者 (
dev_lead) は読み取りと書き込みの権限を持つ
- グループ (
developers) は読み取りと書き込みの権限を持つ
- その他は権限を持たない
- グループの実行権限位置にある小文字の
s は、setgid ビットが設定され、グループに実行権限があることを示す