Настройка SFTP доступа — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
 
(не показано 10 промежуточных версий этого же участника)
Строка 1: Строка 1:
Понадобилось настроить SFTP доступ чтобы заливать фалы на www-сервер. Делаем на Debian Stretch.
+
Понадобилось настроить SFTP доступ, чтобы заливать фалы на www-сервер. Делаем на Debian Stretch.
Папка с сайтом /srv/www/sldel
+
Папка с сайтом /srv/www/sldel. Проект работает от пользователя sldel
  
  
Строка 15: Строка 15:
  
  
Далее придётся подредактировать <code>/etc/ssh/sshd_config<code/>
+
Далее придётся подредактировать <code bash>/etc/ssh/sshd_config</code>
 
  PasswordAuthentication yes
 
  PasswordAuthentication yes
 
  Subsystem sftp internal-sftp
 
  Subsystem sftp internal-sftp
Строка 27: Строка 27:
 
ChrootDirectory - родительский каталог, в данном случае, в нём будет лежать содержимое сайта.
 
ChrootDirectory - родительский каталог, в данном случае, в нём будет лежать содержимое сайта.
  
После рестартим ssh<br/>
+
 
 +
Рестартим ssh
 
  # service ssh restart
 
  # service ssh restart
 +
 +
 +
Теперь настроим директории
 +
# chown root:root /home/sldel
 +
# chmod 755 /home/sldel
 +
# chown sldel:sldel /home/sldel/sldel.ru
 +
 +
 +
В завершении предоставить доступ к папке, которая лежит за пределами ChrootDirectory. Для этого монтируем <code bash>/srv/www/sldel</code> в chroot/sldel.ru
 +
# mount --bind /srv/www/sldel/ /home/sldel/sldel.ru
 +
 +
 +
Не забываем про fstab
 +
/srv/www/sldel/        /home/sldel/sldel.ru    none    bind            0 0
 +
 +
Можно подключаться и заливать файло, проблем с правами быть не должно.
 +
 +
 +
'''Update'''
 +
 +
Бывает что имя пользователя отлично от пользователя под которым работает проект. В этом случае, чтобы создаваемые файлы были с нужными правами, можно создать юзера с id пользователя проекта.
 +
# useradd -g 1000 -o -u 1000 -m -s /sbin/nologin user_name
 +
Параметр -o позволяет назначить id существующего пользователя другому пользователю( в моём случае id 1000, это айди пользователя web, под которым работает проект)

Текущая версия на 17:00, 24 мая 2021

Понадобилось настроить SFTP доступ, чтобы заливать фалы на www-сервер. Делаем на Debian Stretch. Папка с сайтом /srv/www/sldel. Проект работает от пользователя sldel


Заводим пользователя sldel без доступа к консоли

# useradd -u 10001 -m -s /sbin/nologin sldel


Делаем ему пароль

# passwd sldel


Создаём папку для chroot, о ней ниже

# mkdir /home/sldel/sldel.ru


Далее придётся подредактировать /etc/ssh/sshd_config

PasswordAuthentication yes
Subsystem sftp internal-sftp
Match user sldel
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
PermitTunnel no
ChrootDirectory %h
ForceCommand internal-sftp

ChrootDirectory - родительский каталог, в данном случае, в нём будет лежать содержимое сайта.


Рестартим ssh

# service ssh restart


Теперь настроим директории

# chown root:root /home/sldel
# chmod 755 /home/sldel
# chown sldel:sldel /home/sldel/sldel.ru


В завершении предоставить доступ к папке, которая лежит за пределами ChrootDirectory. Для этого монтируем /srv/www/sldel в chroot/sldel.ru

# mount --bind /srv/www/sldel/ /home/sldel/sldel.ru


Не забываем про fstab

/srv/www/sldel/         /home/sldel/sldel.ru     none    bind            0 0

Можно подключаться и заливать файло, проблем с правами быть не должно.


Update

Бывает что имя пользователя отлично от пользователя под которым работает проект. В этом случае, чтобы создаваемые файлы были с нужными правами, можно создать юзера с id пользователя проекта.

# useradd -g 1000 -o -u 1000 -m -s /sbin/nologin user_name

Параметр -o позволяет назначить id существующего пользователя другому пользователю( в моём случае id 1000, это айди пользователя web, под которым работает проект)