Kami telah menemukan solusi baru-baru ini yang seperti ini:
/ etc / ssh / sshd_config:
...
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /home
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
izin direktori:
root@server:~ # chown root:root /home
root@server:~ # chmod 111 /home
root@server:~ # chmod 700 /home/*
Sekarang /home
memenuhi persyaratan untuk ChrootDirectory
dan tidak dapat didaftar oleh pengguna terbatas, tetapi sftponly
pengguna tidak akan dapat login jika direktori home mereka diatur seperti biasa ( /home/$LOGNAME
): di bawah lingkungan chroot direktori home mereka tidak di dalam /home
tetapi langsung di bawah root ( /
).
solusi 1
Tetapkan rumah pengguna yang dibatasi untuk tampilan di bawah chroot:
root@server:~ # usermod -d /username username
peringatan 1
Jika ada pengguna yang tidak dibatasi atau skrip administrasi menggunakan ekspansi tashe bash seperti ~username
itu akan meluas hingga /username
sekarang, yang bukan itu yang dimaksud.
Admin yang membuat sftponly
pengguna harus ingat untuk menggunakan home non-default. Dipecahkan dengan skrip. Yang harus diingat oleh admin untuk digunakan.
solusi 2
Ini adalah alternatif dari yang sebelumnya yang akhirnya kami gunakan:
root@server:~ # ln -s . /home/home
Itu adalah membuat symlink di dalam /home
untuk dirname sendiri. Sekarang di bawah chroot /home/username
menunjuk ke direktori yang sama dengan tanpa chroot. Untuk pengguna terbatas yang masuk dengan sftp akan muncul sebagai /username
. Direktori ini dapat ditulisi oleh pemiliknya (pengguna terbatas). Pengguna yang dibatasi tidak dapat mencantumkan direktori induk atau direktori home dari salah satu dari saudara kandung tersebut berdasarkan nama.
Satu-satunya hal khusus tentang sftponly
pengguna adalah keikutsertaannya dalam sftponly
grup. Kami merasa lebih mudah ditangani daripada solusi 1.
peringatan 2
- Anda tidak dapat memiliki pengguna bernama 'rumah' dengan direktori rumah
/home/home
- Anda harus berhati-hati dengan skrip yang melintasi
/home
hierarki dan mengikuti symlink.
chroot
pengguna ed memilikiChrootDirectory
? Bisakah mereka mengaksesnya?