У меня серьезная проблема с моим SFTP-сервером, работающим под macOS 10.14.6. (Сервер версии 5.8)
Я пытаюсь ограничить пользователей SFTP, чтобы они видели только свою домашнюю папку. У меня все пользователи сети находятся на отдельном томе (/ Volume / Users /), и на этом диске у меня есть несколько подпапок для разных групп, таких как group1, group2 и т. Д. Поэтому пользователь joe, принадлежащий group1, будет помещен в: / Volumes / Пользователи / группа1 / Джо
Я проверил, что root является владельцем каждой папки на пути, и что root является единственным пользователем с разрешениями на запись. Т.е. root владеет Volumes, Users, group1 и joe. (У пользователей есть доступная для записи папка в их домашней папке)
Чтобы попытаться ограничить, я создал группу веб-пользователей, а затем добавил следующее в конец / etc / ssh / sshd_config:
Subsystem sftp /usr/libexec/sftp-server
Match Group web-users
ChrootDirectory %h
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
При входе в систему как joe у меня сломалась труба, и если я посмотрю на свои папки, joe теперь является владельцем папки group1:
ls -l
total 0
drwxr-xr-x 116 joe wheel 3712 Oct 4 08:40 group1
drwxr-xr-x 4 root admin 128 Oct 4 09:04 group2
И я предполагаю, что когда Джо стал владельцем group1, ChrootCommand не работает! Только группы-папки меняют права доступа. Домашняя папка по-прежнему принадлежит пользователю root.
У меня была такая же конфигурация на сервере 10.13 (High Sierra), и она работала отлично, но больше не работает.
Если я удалю команду «ChrootDirectory% h», каждый сможет войти в систему, но затем, конечно, сможет увидеть весь диск. Однако смена собственника все же происходит.
Для меня это кажется большой угрозой безопасности, и я не понимаю, почему это вообще должно происходить.
Я бьюсь головой о стену, поэтому приветствую любые предложения!