Кстати говоря, Вы можете сделать заказ у разработчика которого вы сейчас читаете, по любым вопросам с администрированием серверов, а также сайтами. Я помогу в любой задаче, оплата почасовая. Можете обратиться в Telegram для быстрой обратной связи, либо на почту которая на странице "Обо мне".
Дата публикации: 18.12.2021
Дата обновления: 19.12.2021
Бывает необходимость выдать доступы к SFTP но не раскрывая всех файлов операционной системы, чтобы пользователь зайдя на SFTP попал в определённую папку и не мог никак выйти из неё, для этого надо сделать chroot jail. Использование FTP без шифрования крайне небезопасно, поэтому советую либо выдавать SFTP доступ либо FTP доступ с шифрованием. Чтобы индивидуально не прописывать правила для каждого пользователя можно создать группу:
groupadd sftponly
Назвать данную группу sftponly можно как угодно.
Далее необходимо добавить пользователя в данную группу:
useradd -g sftponly -s /bin/false -m -d /home/username username
Установите пароль новому пользователю:
passwd username
Кстати, говоря о паролях, у нас уже есть статья по генерации пароля:
Генерация паролей на Linux через pwgen
Можно воспользоваться командой: passgen
Если пользователь уже существует, его нужно добавить в данную группу:
usermod -G sftponly -s /bin/false username2
Далее, необходимо выдать права на домашнюю директорию:
chown root: /home/username
chmod 755 /home/username
Так как домашние каталоги принадлежат пользователю root, пользователям необходимо создать дополнительные каталоги внутри домашних, чтобы они имели доступ к папке, где могут создавать файлы, папки и прочее.
mkdir /home/username/{public_html,uploads}
chmod 755 /home/username/{public_html,uploads}
chown username:sftponly /home/username/{public_html,uploads}
Далее откройте файл в редакторе /etc/ssh/sshd_config
nano /etc/ssh/sshd_config
Найдите строку: Subsystem sftp, обычно в конце файла, данная строка должна выглядеть так:
Subsystem sftp internal-sftp
Добавьте в конец файла:
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Далее перезапустите службу ssh или sshd (CentOS, Fedora)
systemctl restart ssh
systemctl restart sshd
Кстати говоря, Вы можете сделать заказ у разработчика которого вы сейчас читаете, по любым вопросам с администрированием серверов, а также сайтами. Я помогу в любой задаче, оплата почасовая. Можете обратиться в Telegram для быстрой обратной связи, либо на почту которая на странице "Обо мне".