SFTP доступ c CHROOT


Допустим необходимо предоставить защищенный доступ к папке без возможности выйти за ее пределы.  Например разработчику нужен доступ к коду php.

Самый простой и быстрый способ: настроить штатный SFTP доступ

4 простых шага:

  1. # useradd -M -N -s /bin/false -u [UID] -o user1_sftp 

    -u [UID] -o  — если вам нужно чтобы создаваемый пользователь работал с файлами под определенным UID, например под apache

  2. Отредактировать /etc/ssh/sshd_config:
    • Subsytem   sftp   /usr/libexec/openssh/sftp-server
    • Match User user1_sftp
      	            ChrootDirectory [user dir]
                          X11Forwarding no
                          AllowTcpForwarding no
                          PermitTTY no
                          PermitTunnel no
                          ForceCommand internal-sftp
  3. # passwd user1_sftp
  4. # /etc/init.d/sshd restart

Используя клиент sftp пользователь соединяется по ssh к серверу и может выполнять стандартные операции с файлами. Следует иметь в виду, что  директория указанная в ChrootDirectory должна принадлежать пользователю root с правами записи только для владельца, а значит наш sftp пользователь не сможет ничего записать в корневую директорию. Поэтому нужно заранее создать каталоги пользователя в корневой директории и сделать владельцем sftp пользователя.

 

 

Поблагодарить:

Оставьте комментарий

Ваш e-mail не будет опубликован.