Для файлов, созданных из учетной записи testuser в каталоге /var /www, мне нужно, чтобы у них были g+rwx в качестве разрешений и www-data в качестве группы.
Как мне этого добиться?
Я создаю файлы через SSH.
Для файлов, созданных из учетной записи testuser в каталоге /var /www, мне нужно, чтобы у них были 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 {} +
Это заставит все вновь созданные файлы наследовать группу родительского каталога, а не пользователя.
Чтобы установить групповые разрешения по умолчанию, вы должны будете использовать ACL. Установите "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 /
Постоянно - один из способов ниже:
на уровне fstab: отредактируйте файл /etc/fstab
чтобы в поле параметров был acl
на уровне файловой системы: tune2fs -o acl /dev/diskname
Возможно, некоторые люди застряли с ответом «grawity» на setgid, если группа папки отличается от вашей, вам может потребоваться запустить chmod от имени пользователя root, но вы не получите никакой ошибки, указывающей на необходимость этого.
$ 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, смотрите это