Я знаю, как использовать chmod и прочее, так что это не вопрос. У меня есть небольшой сервер (Ubuntu LTS) с Apache на нем и стандартной папкой в /var/www/html/
. По умолчанию root является владельцем папки html/
.
Вопрос: Безопасно ли менять владельца папки html/
?
решение1
Изменять владельца файлов в папке совершенно безопасно /var/www
, и, по сути, все содержимое этой папки вы можете редактировать и изменять по своему усмотрению.
Например, если пользователю tsmith
необходимо иметь возможность записывать в файлы в , /var/www/myweb
то вполне нормально установить владельца этих файлов на tsmith
. Или, если вы предпочитаете, оставьте владельца как root
и требуйте tsmith
sudo для записи в них - если вы доверяете ему/ей использование sudo.
Если у вас есть несколько пользователей, которым нужно иметь возможность редактировать файлы, и вы не хотите давать им sudo, вы можете в качестве альтернативы использовать групповое членство, например, создать группу и добавить пользователей в эту группу, затем установить групповое владение и групповую запись для соответствующих файлов, чтобы члены этой группы могли изменять эти файлы. При этом вы, вероятно, захотите использовать бит SetGID ( chmod g+s dir
) в содержащем каталоге, чтобы гарантировать, что новые файлы наследуют то же групповое владение, и umask 002
в каждом пользовательском, ~/.profile
чтобы гарантировать, что они получат групповое разрешение на запись, в противном случае любые новые файлы сможет редактировать только их создатель, а не другие члены группы.
Однако вам следует знать о следующих плохих практиках:
Не устанавливайте владельца каких-либо файлов для
www-data
пользователя илиwww-data
группы, если вы даете группе разрешение на запись. Весь смысл пользователяwww-data
в том, что это непривилегированный пользователь, не способный записывать в какие-либо файлы. Серверные демоны, доступные из внешней сети (например, веб-сервер), обычно работают как непривилегированные пользователи, так что в случае их взлома из-за уязвимости возможные действия злоумышленника минимальны.Исключение: некоторые веб-приложения требуют права записи к определенным файлам и папкам для реализации таких функций, как хранение вложений и т. д. В этих случаях следует установить владельца
www-data
ТОЛЬКОwww-data
для этих файлов, сохраняя минимальное количество файлов, доступных для записи .По той же причине не делайте файлы доступными для записи всем пользователям.
При создании групп не переназначайте существующие группы пользователей, например
admin
,sudo
или особенноwww-data
, которые уже имеют цели в Ubuntu, поскольку это может снизить безопасность системы, если эти группы не предназначены для записи в файлы. Вместо этого создавайте собственные группы и добавляйте в них участников.
решение2
Не очень безопасно использовать любые каталоги или файлы с правами root (как владельца, так и с одиночными правами). Для статических HTML-файлов это не будет большой проблемой безопасности, но как только будут запущены скрипты (PHP, JavaScript, любые формы и т. д.), вы можете получить серьезные проблемы.
решение3
Если вам нужно только обслуживать контент (html, изображения и т. д.), нет необходимости устанавливать специального владельца для каталогов/файлов в /var/www
, при условии, что у пользователя apache2 ( www-data
) есть разрешение на доступ к контенту.
Если вам нужно сделать что-то еще, вам может потребоваться изменить владельцев. Например, если вам нужно загрузить файлы из CMS (например, WordPress, Joomla и т. д.), вам нужно будет изменить владельца каталога загрузки на www-data
(или, по крайней мере, предоставить этому пользователю права на запись)
Лично у меня есть каталоги, /var/www
принадлежащие root
пользователю с модом 1777
(то же самое, что и /tmp
) и веб-сайтам (например: /var/www/site1
), принадлежащим www-data
.
Надеюсь, поможет!