Назад | Перейти на главную страницу

Как владеть папкой и использовать ее 3 пользователя

3 пользователя, 1 папка. Пользователи: vsftpd (FTP-сервер), bobmarley (обычный пользователь), www-data (пользователь Apache)

Как их объединить и сделать так, чтобы каждый пользователь мог изменять любые из этих пользовательских данных, не выполняя CHMOD 777?

Пример: bobmarley создал файл 'settings.inc.php' www-data пытается получить доступ к файлу и успешно. Пользователь vsftpd обращается к файлу и может его изменить.

Создать группу (groupadd) ... chgrp каталога в эту новую группу ... а затем добавьте каждого пользователя в эту группу. Это самый простой способ. Вы также можете захотеть chmod g+s в каталоге, чтобы убедиться, что новые файлы создаются с той же группой, что и родительский каталог.

тадаа!

groupadd webapp
usermod -a -G webapp vsftpd (but I think it should be nobody)
usermod -a -G webapp bobmarley
usermod -a -G webapp www-data
chgrp -R webapp /path/to/folder
chmod -R g+w /path/to/folder

Если у вас есть данные в этой папке, вы можете установить SGID для всех подпапок с помощью:

find /path/to/folder -type d -print0 | xargs -0 chmod g+s /path/to/folder

Не забудьте установить umask для vsftpd, Apache и bobmarley на 002. С этой конфигурацией все файлы, созданные любым пользователем, будут иметь разрешение 664, принадлежащее webapp группа, и другие пользователи могут изменять.

Объедините их всех в общую группу. chgrp файлы в эту группу. chmod файлы / каталоги на 664/775.

Сгруппируйте их. Вот почему в POSIX есть группы. Создать группу xyz и поместите в него vsftpd, bobmarley и www-data.

А затем назначьте группу папке / файлам с chgrp.