/ var/wwwディレクトリのtestuserアカウントから作成されたファイルの場合、許可としてg + rwxが必要ですwww-dataグループとして。
どうすればこれを達成できますか?
SSH経由でファイルを作成しています。
グループを設定するには、/var/www
setgidビット:
chgrp www-data /var/www
chmod g+s /var/www
サブディレクトリも調整するには:find /var/www -type d -exec chmod g+s {} +
これにより、新しく作成されたすべてのファイルが、ユーザーではなく親ディレクトリのグループを継承します。
デフォルトのグループ権限を設定するには、ACLsを使用する必要があります。 「デフォルト」のACLを設定します。
setfacl -m "default:group::rwx" /var/www
サブディレクトリも調整するには:find /var/www -type d -exec setfacl -m d:g::rwx {} +
注:ファイルシステムでは、ACLサポートを有効にする必要があります。デフォルトでオンになっていることもあります。 ext3またはext4では、「操作はサポートされていません」と表示される場合がありますその場合は手動で有効にする必要があります。
現在マウントされているファイルシステムの場合:mount -o remount,acl /
恒久的に– one以下のメソッドの:
fstabレベル:編集/etc/fstab
オプションフィールドにacl
を含める
ファイルシステムレベル:tune2fs -o acl /dev/diskname
これにより、setgidで 'grawity'の回答が表示されなくなる場合があります。フォルダのグループが自分のものと異なる場合は、rootとしてchmodを実行する必要がありますが、これを行う必要があることを示すエラーは表示されません。
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir
$ chmod g+s dir #no errors
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir #but nothing changed
$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo #and the group is still wrong
$ Sudo chmod g+s dir
$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar 9 10:44 dir #the setgid bit is now on
$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar 9 10:51 withsudo #and group is set
ユーザーが作成するファイルのグループは、そのユーザーのグループです(/ etc/group内)。権限はUMASKパラメータによって制御されます これを参照してください