Прежде чем я что-нибудь скажу, я знаю, как работает работа для групп и пользователей.
Моя настройка:
a. мой пользователь monkey и находится в группе www-data
groups monkey
monkey : monkey adm cdrom sudo dip www-data plugdev lpadmin sambashare
b. корневая папка apache /home/monkey/var/www и имеет разрешения 0775 с владельцем www-data и группой www-data
ls -la /home/monkey/var/www
total 8 drwxrwxr-x 2 www-data www-data 4096 Aug 12 10:37 . drwxr-xr-x 3 root root 4096 Aug 12 10:37 ..
с. Но я не могу писать в /home/monkey/var/www/monkey@ubuntu:~$ cp robots.txt var/www/robots.txt
cp: cannot create regular file âvar/www/robots.txtâ: Permission denied
Файл robots.txt был создан под monkey пользователем .
Моя настройка:
Пользователь имеет основную группу и может иметь несколько дополнительных групп. Пользовательская первичная группа установлена / etc / passwd, то есть:
www-data:x:30:40:www-data:/var/www:/usr/sbin/nologin
говорит, что пользователь «www-data» является членом идентификатора группы 40.
Вы можете добавить пользователя в дополнительный групп в / etc / group, но когда вы создаете файл, система по умолчанию будет устанавливать основную группу пользователя как владельца, а не одну из дополнительных групп. Некоторые Unixes проверяют группу каталогов, и если пользователь является членом этой группы, новый файл имеет владельца группы, взятый из каталога, а не пользователя.
Итак, когда вы primary a файл, по умолчанию вы делаете это как «обезьяна» пользователя, группа «обезьяна». И поскольку папка принадлежит:
user 'www-data', а не «monkey» - разрешения пользователя не используются группой «www-data», а не «monkey» - групповые разрешения также не являются используются «другие» разрешения, а tИспользуя команду newgr, вы можете переключить свою основную группу на одну из дополнительных групп, поэтому эффективно установите владельца группы для создания нового файла.
Используя команду umask, вы можете настраивать разрешения, используемые для создания нового файла.
Помогает ли это сейчас?