Настройка SFTP доступа — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | Понадобилось настроить SFTP доступ чтобы заливать фалы на www-сервер. Делаем на Debian Stretch. | + | Понадобилось настроить SFTP доступ, чтобы заливать фалы на www-сервер. Делаем на Debian Stretch. |
− | Папка с сайтом /srv/www/sldel | + | Папка с сайтом /srv/www/sldel. Проект работает от пользователя sldel |
Строка 15: | Строка 15: | ||
− | Далее придётся подредактировать /etc/ssh/sshd_config | + | Далее придётся подредактировать <code bash>/etc/ssh/sshd_config</code> |
PasswordAuthentication yes | PasswordAuthentication yes | ||
Subsystem sftp internal-sftp | Subsystem sftp internal-sftp | ||
Строка 26: | Строка 26: | ||
ForceCommand internal-sftp | ForceCommand internal-sftp | ||
ChrootDirectory - родительский каталог, в данном случае, в нём будет лежать содержимое сайта. | ChrootDirectory - родительский каталог, в данном случае, в нём будет лежать содержимое сайта. | ||
+ | |||
+ | |||
+ | Рестартим ssh | ||
+ | # 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, под которым работает проект)