Введение
Ваш системный администратор может дать вашим пользователям возможность безопасно загружать файлы на сервер. Наиболее распространенный способ сделать это — разрешить передачу файлов по протоколу безопасной передачи файлов (SFTP). По умолчанию пользователи SSH могут просматривать все файлы на сервере.
В этом руководстве мы увидим, как создать пользователя и заключить его в папку (каталог) по нашему выбору.
Может быть полезно создать пользователя с доступом к веб-серверу Apache2, не давая ему возможность повышать уровень, а затем просматривать файлы сервера.
Давайте посмотрим, как это сделать.
Предпосылки
Установка Апача 2. или нгинкс.
Настроить OpenSSH
Чтобы ограничить нового пользователя, нам нужно внести изменения в файл конфигурации SSH.
Откроем следующий файл:
sudo nano /etc/ssh/sshd_config
Давайте найдем строку Subsystem sftp и изменим ее следующим образом:
Subsystem sftp internal-sftp
Добавим в конец файла следующие строки:
Match Group jail_user
ChrootDirectory /var/www
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Сохраните и закройте файл.
Перезапустите службу SSH (OpenSSH)
sudo service ssh restart
Создать нового пользователя
Чтобы создать нового пользователя терминала, введите следующую команду:
sudo useradd ftpuser
Если приведенная выше команда не запрашивает, создайте пароль для нового пользователя:
sudo passwd ftpuser
Создайте новую группу и управляйте разрешениями
Создайте системную группу для пользователей, которым вы хотите запретить доступ по SFTP:
sudo addgroup --system jail_user
Теперь измените учетную запись пользователя, которую вы хотите ограничить. Обратите внимание, что это предотвратит доступ этих пользователей к сеансу удаленной оболочки.
Добавьте нового пользователя во вновь созданную группу:
sudo usermod -G jail_user ftpuser
Давайте удостоверимся, что разрешения веб-сервера Apache верны:
sudo chown root:root /var/www
sudo chmod 755 /var/www
Измените права доступа к файлам в корневой папке Apache:
cd /var/www
sudo chown ftpuser:jail_user *
Вы можете дать полный доступ только что созданному пользователю с помощью следующей команды:
sudo adduser ftpuser www-data
sudo chown -R www-data:www-data /var/www/html
sudo setfacl -R -mu:ftpuser:rwx /var/www/html
Первая команда добавит пользователя в группу www-data, вторая изменит владельца всех каталогов и файлов по следующему пути /var/www/html и третья включит права на запись.
Теперь вы можете войти под новым пользователем через SFTP прямо в выбранную директорию без возможности повышения уровня между папками.
Конфигурация завершена.