Для файлів, створених з облікового запису тестувача в каталозі / var / www, мені потрібно, щоб вони мали g + rwx як дозволи, а www-дані як групу.
Як я можу цього досягти?
Я створюю файли через SSH.
Для файлів, створених з облікового запису тестувача в каталозі / var / www, мені потрібно, щоб вони мали g + rwx як дозволи, а www-дані як групу.
Як я можу цього досягти?
Я створюю файли через 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
chmod
що також отримали б усі файли.
install
, якимось чином вдається обійти ACL-адреси за замовчуванням для каталогу.
/var/www/html/projects
папка, і коли www-data створює файл, він має rw-rw-r
дозволи, але коли я щось роблю в консолі, він створює файл rw-r--r
. Як змусити нові створені файли завжди мати rw-rw-r
дозволи?
umask
. Дозвіл за замовчуванням у каталозі може змінюватися, використовуючи setfacl
як в основному дописі.
Це, можливо, мало хто застряг у відповіді "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 параметра переконатися в цьому
stor
/appe
? Через HTTPPUT
? Через акаунт оболонки? Ці деталі важливі, оскільки вони сильно впливають на можливі відповіді, і вони повинні бути у вашому запитанні.