Разрешения Linux / Чоун против FTP

669
Tim

У меня есть (я полагаю, основные) проблемы с разрешениями / владением Linux.

У меня есть пользователь FTP "ftp". Тогда у меня есть все файлы на моем сервере под другим пользователем "nginx".

Чтобы веб-сайты работали, мне нужно, чтобы все файлы были настроены на пользователя nginx, в противном случае они возвращают различные ошибки.

Чтобы изменить файлы на сервере по FTP, мне нужно установить права доступа для пользователя «ftp», в противном случае я получаю отказ в разрешении при попытке редактировать файлы.

Как решить это с?

Прямо сейчас я должен всегда делать, chown -R ftp:ftpкогда я хочу редактировать некоторые файлы через FTP.

1
[некоторые] (http://superuser.com/q/171199/482177) связанные [вопросы] (http://askubuntu.com/q/9402/494041) cascer1 7 лет назад 0
Выясните, кто должен быть фактическим владельцем, а кто должен иметь права доступа. Установите владельца / группу соответственно, например, используя липкие биты и фиксируя любой из этих параметров. Не забывайте о другом / мире, хотя вы, вероятно, не хотите предоставлять им доступ, это все еще вариант. Seth 7 лет назад 2

1 ответ на вопрос

4
virtex

Похоже, вам нужна общая группа для ftp и nginx. В вашем случае вы можете использовать группу ftp для этого. Я не знаю, нужен ли вашему веб-серверу доступ на запись к файлам, но если нет, перейдите в каталог содержимого и выполните следующие команды:

chown -Rh ftp:ftp . find . -type d -exec chmod g+rxs {} \; find . -type f -exec chmod g+r {} \; 

Если вам нужен доступ для записи с веб-сервера, сделайте это:

chown -Rh ftp:ftp . find . -type d -exec chmod g+rwxs {} \; find . -type f -exec chmod g+rw {} \; 

Эти команды сделают все, что принадлежит ftp: ftp, и сделают эти файлы читаемыми и (во втором случае) доступными для записи любому, кто находится в группе ftp. Он также устанавливает бит setgid для всех каталогов, которые будут создавать все новые файлы, принадлежащие группе ftp. Как только это будет сделано, добавьте пользователя nginx в группу ftp:

usermod -a -G ftp nginx 

и перезапустите ваш веб-сервер, чтобы он вступил в силу.

Вам также может потребоваться принудительно сделать все файлы, записанные в эти каталоги, доступными для записи группой. Вы можете сделать это, установив umask для ваших ftp и веб-серверов на 002, или с помощью acl:

setfacl -Rdm g::rwx . 

Похожие вопросы