Saya memiliki pengaturan dengan pengguna sftp saja:
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Saya mendapatkan pesan berikut di secure.log saya:
fatal: bad ownership or modes for chroot directory
Dengan kata kunci yang cocok ada beberapa hal keamanan dengannya ... direktori harus dimiliki oleh root, dan direktori harus chmod 755 (drwxr-xr-x). Jadi tidak memungkinkan bagi pengguna untuk memiliki izin menulis ke folder, jika hanya dapat ditulis ke root pengguna dan diatur ke non-dapat ditulis untuk grup karena keamanan ssh.
Ada yang tahu tentang pekerjaan yang baik di sekitar?
chroot
pengguna ed memilikiChrootDirectory
? Bisakah mereka mengaksesnya?Jawaban:
Saya memiliki pengaturan yang sama di server kami. Kami menggunakan konfigurasi SSHD yang sama. Direktori rumah pengguna dimiliki oleh root dan di dalamnya ada folder
documents
danpublic_html
dimiliki oleh masing-masing pengguna. Pengguna kemudian login menggunakan SFTP dan menulis ke folder tersebut (tidak langsung ke rumah). Karena SSH tidak diizinkan untuk mereka, SSH berfungsi dengan baik. Anda dapat menyesuaikan direktori mana yang akan dibuat untuk pengguna baru di / etc / skel / (setidaknya di openSUSE, saya tidak begitu terbiasa dengan distro lain).Kemungkinan lain adalah ACL ( dokumentasi openSUSE ) - ini dapat menambahkan izin menulis untuk masing-masing pengguna untuk direktori rumahnya.
sumber
packet_write_wait: Connection to 10.0.0.42 port 22: Broken pipe
Kami telah menemukan solusi baru-baru ini yang seperti ini:
/ etc / ssh / sshd_config:
izin direktori:
Sekarang
/home
memenuhi persyaratan untukChrootDirectory
dan tidak dapat didaftar oleh pengguna terbatas, tetapisftponly
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:
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:
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 dalamsftponly
grup. Kami merasa lebih mudah ditangani daripada solusi 1.peringatan 2
/home/home
/home
hierarki dan mengikuti symlink.sumber
Anda perlu membuat struktur di dalam direktori home pengguna, seperti direktori masuk dan keluar. Dir itu harus dimiliki oleh pengguna dan di sana ia akan dapat menempatkan dan mendapatkan file.
sumber
Anda harus membuat struktur direktori berikut:
/ home / pengguna
/ home / user / home / user <- dir nyata yang akan diakses oleh pengguna
Opsional:
/home/user/.ssh/authorized_keys <- jika Anda ingin mengautentikasi dengan kunci publik
sumber
Mengacu pada bagian 'izin direktori' dalam jawaban dari @artm (yang baru saja saya uji) .. Saya menemukan:
Itu tidak memungkinkan koneksi sftp bekerja di ubuntu dengan hanya menjalankan izin pada segalanya yaitu 111.
Saya menemukan bahwa:
Bekerja dengan koneksi ke sftp dengan izin Read and Execute yaitu 555. Tidak yakin apakah debian vs rasa lain berbeda, tapi itulah yang berfungsi pada ubuntu saya menginstal.
sumber
Saat Anda membuat pengguna, Anda harus mengatur kepemilikan menggunakan
chown
untuk setiap dir untuk setiap pengguna.Sebagai contoh:
sumber