Сервер: Ubuntu 12.04 LTS
Я использую openSSH и создал пользователя SFTP с именем bob
кто принадлежит к группе sftponly
. Я привязал боба к его домашнему каталогу, который /usr/share/nginx/www/bob/
.
bob может отправлять SFTP на сервер и просматривать домашний каталог, однако он не может редактировать файлы в своем каталоге. Я бежал chown -R bob /usr/share/nginx/www/bob/*
сделать Боба владельцем своих файлов, но он по-прежнему не может их редактировать.
Почему это могло быть?
Чтобы правильно chroot члена группы sftponly, вам необходимо установить эти параметры в /etc/ssh/sshd_config
:
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /srv/chroot/%u
ForceCommand internal-sftp
Это требование, чтобы домашний каталог и все каталоги вплоть до корня системы, chrooted пользователей принадлежали root:root
Учитывая следующие значения для пользователя:
$ id user001
uid=1003(user001) gid=1003(user001) groups=1006(sftponly)
$ grep user001 /etc/passwd
user001:x:1003:1003::/input:/sbin/nologin
Вам нужна такая структура каталогов:
$ tree /srv/chroot
/srv/chroot
├── user001
│ └── input
Поскольку каталог HOME пользователя001 оценивается после вызова chroot, он попадает в input
каталог, в котором действуют права на запись:
$ ls -lrtd /srv/chroot/user001/input
drwxrwx--- 2 user001 sftponly 4.0K Apr 07 17:55 /srv/chroot/user001/input