GNU/Linux >> Belajar Linux >  >> Linux

Chroot SFTP - Memungkinkan untuk mengizinkan pengguna menulis ke direktori saat ini (chroot).

Solusi 1:

Hei @emmdee Butuh waktu lama bagi saya untuk menyadari ada trik sederhana dan bagus untuk itu. Anda hanya perlu menjadikan root sebagai pemilik folder induk tempat Anda ingin sFTP, lalu gunakan perintah paksa untuk memberi tahu pengguna tertentu agar memuat DIR tertentu di dalam direktori CHROOT.

Dalam kasus Anda jika Anda ingin /home/sftpuser untuk menjadi direktori yang dapat ditulisi, Anda harus membuat root pemilik /home direktori lalu lanjutkan dan Force Command dia /sftpuser sebagai direktori tujuan untuk pengguna atau grup tersebut.

/etc/ssh/sshd_conf Anda akan terlihat seperti ini:

Match User sftpuser
    ChrootDirectory /home
    ForceCommand internal-sftp -d /sftpuser
    AllowTCPForwarding no
    X11Forwarding no

Setelah selesai, Anda harus memberikan izin yang tepat seperti yang dikatakan sebelumnya, root harus memiliki direktori induk (chroot) /home sedangkan pengguna harus memiliki direktori final(-d) /sftpuser . Saya akan berasumsi bahwa Anda memiliki grup pengguna sFTP bernama sftpusers , jika tidak; hilangkan saja grup dari perintah berikutnya atau ganti dengan pengguna sebagai gantinya (root di bagian pertama dan sftpusers di yang kedua). Karena kami menggunakan -R di baris perintah untuk pewarisan, Anda harus memulai dengan kepemilikan root sebelum kepemilikan pengguna sebagai berikut:

sudo chown -R root:sftpusers /home

lalu untuk pengguna Anda dapat menjalankan:

sudo chown -R sftpuser:sftpusers /home/sftpuser

Saya tidak yakin ini diperlukan tetapi Anda selalu dapat memulai ulang layanan sshd untuk memastikan bahwa semua pengaturan dimuat ulang lagi:

sudo systemctl restart sshd.service

Mudah-mudahan ini akan bekerja dengan sangat baik, saya memiliki masalah yang sama dan solusinya ada di sana menatap mata saya hampir sepanjang waktu.

Semangat!

Solusi 2:

Saya tahu ini sudah beberapa tahun, tetapi postingan ini membawa saya 98% ke sana. setelah lama mencari.

Untuk membuatnya agar saya dapat meminta pengguna melakukan chroot dan secara otomatis memasukkan mereka ke direktori mereka sendiri dengan izin menulis, saya menggunakan metode yang disarankan oleh African Idiot, dan juga membuat direktori chroot asli yang dimiliki oleh pengguna root dan grup ftp.

Tetapi kunci bagi saya untuk menyimpannya di folder itu dan tidak dapat .. dan mencoba menelusuri folder pengguna lain, adalah membuat folder chmod 710 (rwx--x---) sehingga grup ftp telah mengeksekusi untuk melakukan internal-sftp -d /%u (yaitu cd ke subdirektori pengguna) dan sekarang jika saya mencoba cd .. ke direktori atas, karena tidak ada bacaan untuk siapa pun selain root, gagal.

drwx--x---  6 root        sftpusers   uarch  6 Feb 19 15:34 ./
drwxr-xr-x  5 root        root        uarch  5 Feb  4 09:13 ../
drwxrwx---  3 anotheruser anotheruser uarch  3 Feb 24 15:34 anotheruser/
drwxrwx---  3 ftpuser     ftpuser     uarch 12 Feb 25 10:55 ftpuser/

harap ini membantu orang lain juga.


Linux
  1. Bagaimana Cara Mengubah Izin Dari Pengguna Root Menjadi Semua Pengguna?

  2. $pwd? (vs Direktori Kerja Saat Ini)?

  3. Kali Default Pengguna Non-Root

  1. Cara mengembalikan file di bawah direktori home pengguna ke default di Linux

  2. Direktori skrip Shell saat ini?

  3. Cara menjalankan Elasticsearch 2.1.1 sebagai pengguna root di mesin Linux

  1. Dorong/pop direktori saat ini?

  2. Memasang dan memodifikasi file loopback tanpa sudo/root, apakah mungkin?

  3. Izin tulis pengguna SFTP yang di-chroot