Лучший способ сделать это - создать chroot-тюрьму для пользователя. Я уберу ответ здесь, когда вернусь домой, но я разместил решение в своем блоге.
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
Ниже приведены большинство инструкций из вышеприведенного поста.
Во-первых, вы должны создать нового пользователя в Workgroup Admin и либо назначить ему привилегии доступа для SSH через Server Admin, либо назначить его группе, которая имеет права доступа SSH. Дальнейшее обсуждение ниже.
С терминала начинайте прямо.
sudo cp /etc/sshd_config /etc/sshd_config.bkup
sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot
Каждый добавленный новый пользователь будет выглядеть следующим образом.
sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2
Каждая папка, в которой находится путь к chroot-тюрьме, должна принадлежать root
. Я не думаю, что имеет значение, в какой группе находится папка. То, что я сделал выше, было
- резервный
/etc/sshd_config
- изменить владельца корневого каталога на
root
- изменить разрешения корневого каталога на 755
- создать папку chroot
- создать папку пользователя внутри папки chroot
- создать папку внутри пользовательской папки, которую пользователь может изменить
- установить права собственности и разрешения
Теперь, чтобы отредактировать /etc/sshd_config
следующее.
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match User user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/user
Это создает тюрьму chroot, которая, когда пользователь входит в систему, перетаскивает их в папку /chroot/user
, в этой папке есть папка , в которую они могут добавлять вещи /chroot/user/scratchpad
.
Если вы хотите создать группу в Администраторе рабочей группы для «Пользователи Chroot», то добавьте в группу новых пользователей, созданных вами в Администраторе рабочей группы, вам не нужно будет продолжать редактировать /etc/sshd_config
файл. Вместо вышесказанного добавьте следующее. Убедитесь, что вы добавили группу «Пользователи Chroot» в ACL доступа SSH в Server Admin.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Чтобы проверить, работает ли вышеперечисленное, введите в терминале следующее.
$ sftp user@domain.com
Password:
sftp>