Полномочия Apache позволить и пользователю и веб-серверу редактировать/var/www

Из соображений безопасности я хотел бы отключить корневой доступ через ssh.

Я создал нового пользователя (user1) с административными полномочиями.

adduser user1
usermod -aG sudo user1

и присвоил/www каталог этому пользователю.

sudo chown -R $USER:$USER /var/www/
sudo chmod -R 755 /var/www

(Моей структурой папок является www/site1.com, www/site2.com, и т.д.),

Мои сайты должны записать некоторые файлы (такие как карты сайта, RSS ленты, и т.д.), таким образом, я установил полномочия www каталога к:

sudo chown -R www-data:www-data /var/www
sudo chmod -R 755 /var/www

Теперь, однако, пользователь user1 работы отлично через оболочку с командой sudo, но больше не может добавлять/редактировать/удалять файлы и папки в/www каталоге и его подкаталогах через sftp.

Я прочитал многие руководства, как настроить апачские полномочия увеличить безопасность, совместно использовать администрирование с другими пользователями, и т.д. и т.д. и т.д.

Но я все еще не понял, как решить мою проблему.

В настоящее время, чтобы мочь обработать файлы на моем сервере через sftp я должен использовать пользователя root с душевным спокойствием для безопасности.

Я пропускал что-то об установке полномочия папок или пользователь?

2
задан 6 February 2019 в 06:55

2 ответа

Возможно установить другую группу и пользовательский доступ для файлов и каталогов, и это позволит и Apache и Вашему user1 пользователю редактировать то, что находится в /var/www не требуя root/sudo и ничего не делая мировым перезаписываемым.

Так, установите "пользовательское" разрешение внутри /var/www кому: user1. Установите разрешение "группы" на www-data (но ТОЛЬКО для определенных файлов или каталогов, которые веб-сервер должен записать в).

sudo chown -R user1:user1 /var/www
sudo chgrp www-data /var/www/specific-file

Необходимо постараться не позволять веб-серверу записать во все /var/www каталог и его содержание, вместо этого давая вышеупомянутое разрешение группы только определенным файлам, где это необходимо. Это - хороший принцип защиты для ограничения доступа веб-сервера, чтобы записать в файлы только в те файлы, что это строго необходимо для - и это - хорошая идея попытаться гарантировать, что те файлы не выполняются непосредственно (не .php или другие исполняемые сценарии, например).

3
ответ дан 2 December 2019 в 02:12

Если Вы изменяетесь, каталог с setgid укусил, этими проблемами должна быть история.

Попробуйте это

chmod 2775 /var/www

С setgid набором битов все файлы в этом каталоге принадлежат www-данным группы (это должно быть типичным пользователем и группой папки, www-data:www-data), и не пользователь.

Таким образом, целый user1 находится в www-данных группы, пользователь должен смочь изменить, удалить и открыть файлы.

Попробуйте.

Сначала введите пользователя в соответствующую группу. Самый простой путь

sudo nano /etc/group

Найдите www-данные и введите user1 после ":" в конце

ВЫЙДИТЕ ИЗ СИСТЕМЫ/ВОЙДИТЕ снова

Теперь создайте папку, например.

sudo mkdir /var/www2

и затем помещенный setgid обдумал его

sudo chmod 2775 /var/www2 && sudo chown www-data:www-data /var/www2

теперь введите папку, создайте другую папку или файл. Это должно работать и выглядеть примерно так (удостоверьтесь, что Вы видите "s" при использовании ls),

Посмотрите здесь, например.

simmel@tron:/var/www2
$ ls -la
total 0
drwxrwsr-x 1 www-data www-data   8 Feb 21 10:28 .
drwxr-xr-x 1 root     root     126 Feb 21 10:26 ..
drwxrwsr-x 1 simmel   www-data   0 Feb 21 10:28 blah

Как Вы видите для части группы существует RWS, показанный вместо показанного RWX.

1
ответ дан 2 December 2019 в 02:12

Другие вопросы по тегам:

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