私はLinuxの専門家ではなく、この状況を解決する方法を知りたいです。
demo
グループに関連付けられたID 1000というユーザーがいるため、www-data
このdemo
ユーザーは実際にプロジェクト内のすべてのファイルを削除/編集/作成できます。たとえば、次のようになります。
foo
ここで、idを持つユーザーを使用してログインすると仮定します1001
。たとえば、ファイルを編集しようとすると、権限.env
が拒否されます。
グループ所有者(1000)と同じ権限をユーザーに付与する方法はありますかfoo
?
foo
したがって、単にユーザーグループにユーザーを追加してから、ユーザーがデモしたようにdemo
実際foo
に削除/編集/作成することができます。
この目標をどのように達成できますか?
よろしくお願いします。
答え1
ファイルの所有者は...のみです。
他の人とグループのすべてのメンバーに読み取り、書き込み、および実行権限を付与できますが...
ファイルを削除するための所有者の単独(ルートと共有)権限を奪われません。
他のユーザーが自分が所有していない特定のファイルを削除できるようにするには...唯一の可能性は、そのユーザーに次の機能を提供することです。数。
したがって、他のユーザーがwww-data所有のファイルを削除できるようにするには、次のコマンドを使用してそのユーザーに権限を付与する必要があります。su www-data
答え2
努力する: usermod -a -G 1000 foo
。
ただし、ユーザー 1000 は www-data グループに関連付けられておらず、ユーザー www-data はグループ 1000 に関連付けられています。これを見てください。
答え3
2人のユーザーに読み取り/書き込みアクセス権を付与し、残りのユーザーに読み取り専用アクセス権を付与するには、その2人のユーザーのグループを作成し、rwx
そのグループに権限を付与するだけです。また、両方のユーザーがファイルを作成および削除できるようにディレクトリへのグループアクセスを許可し、ユーザーを作成するrwx
代わりに、ディレクトリから新しいファイルグループを取得するようにディレクトリにsetgidビットを設定します。
関連する両方のユーザー/すべてのユーザーが正しい設定を持っている限り機能します。この場合はumask
そうです。002
そうしないと、必然的にグループに書き込み権限がないファイルが作成され、他のユーザーがロックする可能性があります。ファイル権限を変更するためにファイル所有者に権限を委任することはできません。
(もちろん、他のユーザーがこのトリックを知っている場合は、新しい名前でファイルを作成し、元のファイルに基づいて名前を変更して、新しいファイルの所有者になることができます。)
読み取りおよび書き込みアクセス権を持つ2人のユーザー、読み取り専用アクセス権を持つ1つのグループ、およびアクセス権を持たない他のユーザーが必要な場合は、ACLを検討する必要があります。デフォルトのACLもこのumask
問題を解決するのに役立ちます。
答え4
ACLを使用すると、目標を達成できます。
これは良いスタート。
あなたの質問のトピックがやや混乱しているので、これ以上説明しません。明確にするために編集できますか?