Ответы:
Системы Unix предоставляют chrootкоманду, которая позволяет вам сбросить /пользователя в некоторый каталог в иерархии файловой системы, где они не могут получить доступ к «более высоким» файлам и каталогам.
Однако в вашем случае было бы целесообразно предоставить виртуальный chroot, реализованный службой удаленной оболочки. sftp может быть легко настроен на ограничение локального пользователя определенным подмножеством файловой системы.
следовательно, в вашем случае, вы хотите chroot, скажем, пользовательский fooпользователь в /var/www/vhosts/каталог.
Вы можете установить каталог chroot для своего пользователя, чтобы ограничить его подкаталогом, /var/www/vhosts/как в /etc/ssh/sshd_config;
Создать пользователя fooс паролем
sudo useradd foo
sudo passwd foo
Создать только для SFTP группы
$ sudo groupadd sftp_users
Добавить к пользователю fooтолько для SFTP группы
$ sudo usermod -G sftp_users foo
Смена владельца, потому что разрешение на чтение / запись
sudo chown root.root /var/www/vhosts/
Добавить разрешение
sudo chmod 755 /var/www/vhosts/
редактировать /etc/ssh/sshd_config
sudo vi /etc/ssh/sshd_config
Закомментируйте и добавьте строку, как показано ниже
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Добавьте в конце
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /var/www/vhosts/
ForceCommand internal-sftp
(Примечание: Matchблоки должны быть в КОНЦЕ из sshd_configфайла.)
Перезапустить sshсервис
sudo service ssh restart
С этой настройкой вы можете ssh в папку ubuntuи получить файлы. Не может putилиdelete
Для sftp в правой папке отредактируйте /etc/passwd. Измените строку, чтобы пользователь fooвыглядел так
$ sudo vi /etc/passwd
..
foo:x:1001:1001::/var/www/vhosts/:
..
Это изменит fooдомашнюю папку пользователя на вашу папку сервера sftp.
Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /var/www/vhosts AllowTcpForwarding no ForceCommand internal-sftpно есть ошибка, когда я хочу перезапустить ssh/etc/ssh/sshd_config line 92: Directive 'UsePAM' is not allowed within a Match block
Match.....раздел в конец файла. Поместите этот код в конец файла и перезапустите его.
Match Group sftp ChrootDirectory /var/www/vhosts AllowTcpForwarding noIn sshd_config и создал пользователя и группу, как и вы, но у пользователяfooесть права на все папки :(