Найкращий спосіб зробити це - створити в'язницю 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>