Я веб-разработчик. Я разрешаю SSH-доступ к моей машине нескольким людям.
Я хочу быть уверенным, что они не смогут получить доступ к моим файлам в формате /var/www/
.
Так возможно ли сделать эти файлы доступными для чтения только веб-серверу и предоставить права на чтение и запись пользователю root?
решение1
Я предполагаю, что пользователь Apache называется www-data
. Если вы хотите, чтобы файлы в /var/www/
стали доступны для чтения только этому пользователю, вам нужно дать ему право собственности:
sudo chown -R www-data /var/www/
Теперь вы хотите www-data
быть единственным пользователем, который действительно может читать/писать эти данные:
sudo chmod -R 700 /var/www/
Обратите внимание, что root
всегда имеет доступ на чтение/запись к любому файлу, независимо от разрешений. Является ли эта настройка хорошей идеей или нет – ну, я бы лучше chroot этих пользователей SSH в их домашние папки. СмотритеМогу ли я создать пользователя SSH, который сможет получить доступ только к определенному каталогу?
решение2
В зависимости от пользователя вашего веб-сервера (обычно www-data):
chown www-data /var/www
chmod -R 700 /var/www
Это сделает пользователя www-data владельцем вашего каталога /var/www и разрешит доступ к каталогу только владельцу.
решение3
Вы можете захотеть сделать root или другого пользователя владельцем вашего веб-контента. Это не позволит веб-серверу перезаписывать контент, если кто-то получит доступ через скрипт или другую точку входа. Замените root
в этих командах на любого пользователя, которому вы хотите назначить владельца контента.
chown -R root:www-data /var/www
chmod 2750 /var/www
Чтобы разрешить user
(кроме root) поддерживать контент, вам необходимо добавить пользователя в группу www-data.
adduser user www-data
Некоторые веб-приложения могут иметь некоторые каталоги, в которые они записывают динамический контент. Чтобы разрешить доступ, либо измените владельца на www-data, либо разрешите групповую запись.