ファイルとフォルダに対する権限の設定 - フォルダ権限の継承は常に暗黙的ですか?

ファイルとフォルダに対する権限の設定 - フォルダ権限の継承は常に暗黙的ですか?

目的:ルートにフォルダを作成し、グループにchownし、ユーザーをグループに追加します。しかし、ユーザーはあまりにも広い権限を取得します。

以下を考慮してください。

# as root

# we need a user group
groupadd team1

# we need a shared folder
mkdir /project1
chown root:team1 /project1
chmod 770 /project1

# we need users - and they get set pw elsewhere :)
for i in bob tina jim joy; do useradd $i; done

# we add them to the project group 'team1' that gives access to the shared folder
usermod -aG team1 [username]

不思議なことに、ユーザーはjimvimからファイルを作成し/project1、ユーザーはjoyvimでそのファイルを開いたり、変更したり、保存したり、ファイルを削除したりすることができます。

質問:これは正しい行動と見なされますか?権限はフォルダ自体に制限されてはいけませんがchmod 770 /project1、見えるようにそのフォルダ内のファイルで繰り返すべきではありませんか?

答え1

これは通常の動作です。

ディレクトリに対する770権限を使用すると、ディレクトリ所有者とディレクトリグループのすべてのメンバーがディレクトリを読み取り、書き込み、検索できます。これは、グループのすべてのメンバーがファイル自体の権限と所有権に関係なく、ディレクトリ内のファイルを削除して新しいファイルを作成できることを意味します。これは、jimファイルにどの権限が設定されていても、ファイルを削除してjoy別のファイルに置き換えることができるということですvim

標準の Unix 権限モデル内でディレクトリに対する追加権限を設定できます。

ここで最初の有用な点は、削除を制限する固定ビットです。ファイルは所有者、ディレクトリ所有者、またはroot

chmod g+t /project1

この設定が完了すると、ファイルをjoy削除できませんjim

2番目の有用な権限はsgidビットです。この権限により、ディレクトリ内のグループがディレクトリに新しく作成されたファイルに適用されるようになります。

chmod g+s /project1

2つを組み合わせるには、次のようにします。

chmod 3770 /project1

バラよりUNIXの権限とファイルタイプの理解もっと学ぶ。

関連情報