Я знаю, что есть разные версии этого вопроса. но я пытаюсь дать каждому пользователю папку в каталоге chroot, и он / она не должен иметь возможность перемещаться за пределы назначенной папки.
У меня есть Red Hat 7.1 Linux box в облаке. Что мне нужно это:
- создать группу exchangefiles
- ограничить группу SFTP
- У меня есть несколько пользователей Legacy1, Legacy2, Legacy3
- Создать пользователя / пароль для каждого пользователя
- Создайте папки в / exchangefolder для каждого пользователя
- ограничить пользователей назначенными им папками (нет навигации за пределами их папок). например
- Пользователь Legacy1 может только SFTP в / exchangefolder / Legacy1
- Пользователь Legacy2 может только SFTP в / exchangefolder / Legacy2
После этого все, что мне нужно делать всякий раз, когда у меня появляется новый пользователь, - это добавить его в эту группу, а не в другую группу, и дать ему доступ к папке в каталоге /exchangefolder.
Я использовал инструкции, упомянутые в " https://passingcuriosity.com/2014/openssh-restrict-to-sftp-chroot/ ", затем изменил "/etc/ssh/sshd_config", добавив
Match Group exchangefiles
# Force the connection to use the built-in SFTP support.
ForceCommand internal-sftp
# Chroot the connection into the specified directory.
#ChrootDirectory /home/exchangefiles/%u
#ChrootDirectory /home/exchangefiles
*ChrootDirectory %h*
# Disable network tunneling
PermitTunnel no
# Disable authentication agent forwarding.
AllowAgentForwarding no
# Disable TCP connection forwarding.
AllowTcpForwarding no
# Disable X11 remote desktop forwarding.
X11Forwarding no
созданный
/home/exchangefiles
$ ls -ltr
total 16
drwxrwxr-x 2 root exchangefiles 4096 Jul 11 11:12 files
drwxrwxr-x 2 root exchangefiles 4096 Jul 11 15:31 sftptest2
drwxrwxr-x 3 root exchangefiles 4096 Jul 11 16:16 sftptest1
drwxrwxr-x 3 root exchangefiles 4096 Jul 11 18:32 sftptest3
и структура папок под ним.
Я создал пользователя по ссылке выше. но затем я попытался установить для каждого домашнего каталога пользователя в структуре тюрьмы. например, USER sftptest1 будет иметь домашний каталог
/home/exchangefiles/sftptest1
проблема в том, что я не могу SFTP, если я не изменить
ChrootDirectory %h
в
ChrootDirectory /home/exchangefiles
что побеждает мою цель создания отдельной папки для каждого пользователя (вроде тюрьмы в тюрьме)
это выполнимо? Каков наилучший способ сделать это?