Найкращий спосіб зробити це - створити в'язницю chroot для користувача. Я приберу відповідь тут, коли повернусь додому, але я розмістив рішення у своєму блозі.
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
Нижче представлена більшість інструкцій з вищезгаданого поста.
Спочатку слід створити нового користувача в адміністраторі Workgroup Admin і призначити їм права доступу для SSH через Admin Server Server або призначити їх групі, яка має права доступу до 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 Users" до списку доступу ACH до SSH на сервері адміністратора.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Щоб перевірити, чи працює вищезгадане, видайте наступне з терміналу.
$ sftp user@domain.com
Password:
sftp>