Cara terbaik untuk melakukan ini adalah membuat chroot jail bagi pengguna. Saya akan membersihkan jawabannya di sini ketika saya tiba di rumah tetapi saya memposting solusinya di blog saya.
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
Di bawah ini adalah sebagian besar instruksi dari posting di atas.
Pertama, Anda harus membuat pengguna baru di Workgroup Admin dan menetapkan mereka hak akses untuk SSH melalui Server Admin atau menugaskan mereka ke grup yang memiliki hak akses SSH. Diskusi lebih lanjut di bawah ini.
Dari Terminal, mulailah dari kanan.
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
Setiap tambahan pengguna baru yang ditambahkan kemudian akan menjadi sesuatu di sepanjang baris berikut ini.
sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2
Setiap folder yang harus dimiliki oleh jalur chroot jail root
. Saya tidak berpikir itu penting untuk grup apa folder itu. Apa yang saya lakukan di atas adalah untuk
- cadangan
/etc/sshd_config
- ubah kepemilikan direktori root menjadi
root
- ubah izin direktori root ke 755
- buat folder chroot
- buat folder pengguna di dalam folder chroot
- buat folder di dalam folder pengguna yang dapat dimodifikasi pengguna
- atur kepemilikan dan izin
Sekarang edit /etc/sshd_config
ke berikut ini.
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match User user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/user
Ini menciptakan chroot jail yang ketika pengguna log in akan memasukkan mereka ke folder /chroot/user
, di folder itu ada folder yang dapat mereka tambahkan /chroot/user/scratchpad
.
Jika Anda ingin membuat Grup di Admin Workgroup untuk 'Pengguna Chroot' kemudian tambahkan pengguna baru yang Anda buat di Admin Workgroup ke Grup Anda tidak harus terus mengedit /etc/sshd_config
file. Daripada yang di atas, tambahkan yang berikut ini. Pastikan Anda menambahkan grup 'Pengguna Chroot' ke akses SSH ACL di Server Admin.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Untuk menguji apakah hal di atas berfungsi, keluarkan yang berikut dari terminal.
$ sftp user@domain.com
Password:
sftp>