DataLife Engine / Ограничение SFTP доступа группе пользователей в CentOS 8 / RHEL 8

Ограничение SFTP доступа группе пользователей в CentOS 8 / RHEL 8


По умолчанию, при подключении по протоколу SFTP, пользователь имеет возможность просмотра дерева директории файловой системы, а также увидеть содержимое этих директории. При наличии прав, пользователь может редактировать или даже удалить файлы. Доступ можно ограничить, создав специальное окружение для определенной директории.

Открываем конфигурационный файл демона OpenSSH:
vi /etc/ssh/sshd_config

Комментируем следующую строку:
#Subsystem      sftp    /usr/libexec/openssh/sftp-server

Добавляем в самый конец файла следующее:
Subsystem sftp internal-sftp
Match group sftpgroup
  ChrootDirectory /home/%u
  ForceCommand internal-sftp
  AllowTcpForwarding no

Создадим группу sftpgroup для пользователей:
groupadd sftpgroup

Создадим пользователя sftpuser1, назначим ему домашнюю директорию, укажем основную группу sftpgroup и запретим доступ к оболочке shell:
useradd -d /home/sftpuser1 -m -g sftpgroup -s /sbin/nologin sftpuser1

Назначим пароль для пользователя sftpuser1:
passwd sftpuser1

Настройки chroot требуют, чтобы владельцем домашней директории пользователя был root и права доступа должны быть выставлены следующие:
chown root /home/sftpuser1 && chmod 755 /home/sftpuser1

Создадим синоним директории сайта:
mkdir -p /var/www/html && mkdir /home/sftpuser1/html

Назначим права доступа, чтобы пользователь имел возможность изменения в директории сайта:
chown sftpuser1 /home/sftpuser1/html && chgrp sftpgroup /var/www/html && chmod 775 /var/www/html

Монтируем директорию:
mount --bind /var/www/html /home/sftpuser1/html

Перезапуск демона OpenSSH:
systemctl restart sshd
26-08-2020, 11:57
Вернуться назад