グループが特定のユーザーが所有するフォルダを読み書きできるようにする

グループが特定のユーザーが所有するフォルダを読み書きできるようにする

グループmanagerとユーザーがいますuser1

user1例では、Webサーバーのパスにディレクトリが作成されます/var/www/user1Project

グループがmanager所有するディレクトリから読み書きできるようにするにはどうすればよいですかuser1

manager。にグループを追加しようとしましたが、user1問題は解決されませんでした。グループのユーザーはmanager書き込みを許可されませんuser1Project。理由はわかりません。

答え1

これは非常に具体的であり、Unixoidシステムのレガシー権限アーキテクチャを使用して管理することはできません。あなたの意図に最も近い方法は、以下を使用することです。ACL。次のコマンドを実行します(オプションでスーパーユーザーとして):

setfacl -d -R -m g:manager:rwx /dir/of/user1
setfacl -R -m g:manager:rwx /dir/of/user1

最初のコマンドは、user1 が新しく作成したファイルに適用されるように、ディレクトリに対するデフォルトの権限を設定します。 2番目のコマンドは、フォルダとファイルの実際のアクセス許可を再帰的に設定します。

ACL インフラストラクチャは Apache Web サーバーでは機能しません。 Apacheはレガシー権限(ユーザー/グループ/その他の権限)にのみ興味を持っています。したがって、ネットワークフォルダ内では、すべてのファイル/フォルダがそのwww-dataグループに存在し、すべてのファイルにインデックス検索の実行権限がwww-data必要です。www-data

修正する:

ディレクトリに新しく作成されたファイルがディレクトリグループを継承するようにするには、ディレクトリのgidビットを設定します。

chmod g+s /web/directory

内部に新しく作成されたファイルが/web/directoryこのグループを継承します。/web/directory

答え2

このグループの一部になるだけでなく、ディレクトリへの書き込み権限も設定する必要があります。

 chmod 770 /var/www/user1Project/example_dir

(世界中に読み取り権限を付与するには、775を使用します。これはWebディレクトリでより可能性が高いです。)

また、ユーザー管理者はグループに追加された後に再度ログインする必要があることに注意してくださいuser1

user1グループが作成したすべてのディレクトリをグループメンバーが書き込むことができるようにするには、次のようにuser1設定できます。

umask 0002

これにより、権限のあるディレクトリが作成されますrwxrwxr-x

答え3

ディレクトリグループを管理者に設定します。

chgrp -hR manager /your/target/directory/path

その後、権限にset-GID-bitを追加すると、user1変更がある場合はグループに書き換えることができます。

chmod g+s /your/target/directory/path

答え4

setfaclあなたにとって最高のようです。インストールされていることを確認してくださいacl utilities。すでにインストールされていることを確認

Redhat プライマリシステムで次のタスクを実行します。

yum list acl

Debian ベースのシステムの場合

dpkg -l acl

Redhat ベースのシステムの場合、まだインストールされていない場合は、次の手順を実行します。

yum install acl.x86_64 # Or use dnf for later versions of Fedora and so

Debian ベースのシステムの場合

dpkg install acl

ファイルシステムでaclを有効にするには、/ etc / fstabを変更します。

UUID=your_uuid_here   /partition    filesystemtype   options,acl   0   2

,aclは追加された唯一の部分です。次に、パーティションを再マウントします。

mount -o remount /your_partition_here

acl(すでにインストールされている場合は、完了していない可能性がある設定部分が完了します。)


setfaclを適用

setfacl -m g:manager:rw file /var/www/user1Project #you need root privileges

もう行けます。

関連情報