グループ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
もう行けます。