Задать вопрос

VPS под Ubuntu. Настройка прав доступа?

Пожалуйста, помогите разобраться!

Запустил VPS под Ubuntu. Стандартный набор софта vsftpd+Apache2+MySQL+PHP. Все хорошо, все замечательно, есть только одна проблема — по FTP могу спокойно редактировать файлы, т.к. все делается от имени пользователя, а Apache все делает под пользователем www-data и любые изменения по HTTP (загрузка или редактирование файлов) проходят только если стоит 777.

Я уже попробовал добавить пользователя www-data в группы всех пользователей и выставить 775 на файлы, но запись все равно не разрешается.
  • Вопрос задан
  • 5398 просмотров
Подписаться 5 Оценить Комментировать
Решения вопроса 1
sledopit
@sledopit
Поставьте apache-mpm-itk и задайте необходимого пользователя для хоста через
AssignUserID user user
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Всё немного сложнее. С mpm-itk веб-сервер запускается от рута и все вхосты, для которых не указан AssignUserID — тоже работают от рута. Мастер процесс работающий от рута — это нормально, но вот если кому-то забыть указать UserID и этот сайт поломают — будет беда-беда.
Пользователей, фигурирующий в mpm-itk — можно правильно ограничить в системе (а по сути — этого не нужно, www-data обладает ничуть не меньшими правами — разве что у него пароля нет и /bin/sh вместо шелла).

В вашем же случае правильное решение — делать chown -R user:www-data /path/to/files и ставить 775 на те каталоги, которые нужно редактировать веб-серверу (и 755 на те, которые не нужно). При этом хорошо бы на все файлы ставить после этого 664/644.

Чтобы не делать chmod каждый раз — можно пользователю сделать основной группой www-data (usermod -g www-data user, как-то так, емнип). Но это только в том случае, если вы на сервере всё делаете в одиночестве (все пользователи смогу ходить друг к другу и править файлики, если на них 664).
Ответ написан
frux
@frux Автор вопроса
uid=1004(geekstech.ru) gid=1004(geekstech.ru) groups=1004(geekstech.ru)
uid=33(www-data) gid=33(www-data) groups=33(www-data)

-rwxrwxr-x 1 qdinov.com root  1140 Apr  4 07:31 find_bom.php
-rwxrwxr-x 1 qdinov.com root   395 Apr  4 07:31 index.php
-rwxrwxr-x 1 qdinov.com root 19929 Apr  4 07:31 license.txt
-rwxrwxr-x 1 qdinov.com root 16501 Apr  4 07:31 readme.html
-rwxrwxr-x 1 qdinov.com root  4663 Apr  4 07:31 wp-activate.php
drwxrwxr-x 9 qdinov.com root  4096 Dec 12 20:47 wp-admin
-rwxrwxr-x 1 qdinov.com root   271 Apr  4 07:31 wp-blog-header.php
-rwxrwxr-x 1 qdinov.com root  3522 Apr  4 07:31 wp-comments-post.php
-rwxrwxr-x 1 qdinov.com root  5285 Apr  4 07:31 wp-config-sample.php
-rwxrwxr-x 1 qdinov.com root  5564 Apr  4 07:10 wp-config.php
drwxrwxr-x 7 qdinov.com root  4096 Apr  4 11:21 wp-content
-rwxrwxr-x 1 qdinov.com root  2718 Apr  4 07:31 wp-cron.php
drwxrwxr-x 9 qdinov.com root  4096 Dec 12 20:47 wp-includes
-rwxrwxr-x 1 qdinov.com root  1997 Apr  4 07:32 wp-links-opml.php
-rwxrwxr-x 1 qdinov.com root  2408 Apr  4 07:32 wp-load.php
-rwxrwxr-x 1 qdinov.com root 29310 Apr  4 07:32 wp-login.php
-rwxrwxr-x 1 qdinov.com root  7723 Apr  4 07:32 wp-mail.php
-rwxrwxr-x 1 qdinov.com root  9899 Apr  4 07:32 wp-settings.php
-rwxrwxr-x 1 qdinov.com root 18219 Apr  4 07:32 wp-signup.php
-rwxrwxr-x 1 qdinov.com root  3700 Apr  4 07:32 wp-trackback.php
-rwxrwxr-x 1 qdinov.com root  2719 Apr  4 07:32 xmlrpc.php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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