Более-менее грамотная настройка sftp с разграничением прав:
Делал на Debian 7.0 (wheezy)
# addgroup sftpusers
# useradd -d /home/someuser -g sftpusers -s /bin/false someuser
# mkdir -p /home/someuser
# passwd someuser
Далее конфигурируем /etc/ssh/sshd_config:
# Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
в конце файла добавляем
Match User someuser
ChrootDirectory %h
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no
(После строки Match, все строки должны быть с отступом(пробел в начале строки))
Сохраняем, выходим.
Перезапускаем sshd:
# /etc/init.d/ssh restart
Далее самое интересное. Пользователь сидит в своей песочнице, блуждать по системным папкам он не может, но что делать, если надо дать ему доступ в какую то директорию, которая находится за пределами его домашней? ln в этой случем не работает.
Тут приходит на помощь очень полезная команда mount.
И так, дадим пользователю доступ к его вебсайту за пределами его домашней директории:
# mkdir -p /home/someuser/www
# mount --bind /var/www/somesite.ru/public /home/someuser/www
Ну и не забывайте дать права на запись для этого пользователя в /var/www/somesite.ru/public
No comments
RSS / trackback