GNU/Linux >> Belajar Linux >  >> Linux

Izin tulis pengguna SFTP yang di-chroot

Kami menemukan solusi baru-baru ini seperti ini:

/etc/ssh/sshd_config:

...

Subsystem sftp internal-sftp

Match Group sftponly
    ChrootDirectory /home
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

izin direktori:

[email protected]:~ # chown root:root /home
[email protected]:~ # chmod 111 /home
[email protected]:~ # chmod 700 /home/*

Sekarang /home memenuhi persyaratan untuk ChrootDirectory dan tidak dapat dicantumkan oleh pengguna yang dibatasi, tetapi sftponly pengguna tidak akan dapat masuk jika direktori home mereka diatur seperti biasa (/home/$LOGNAME ):di bawah lingkungan chroot, direktori home mereka tidak berada di dalam /home tetapi langsung di bawah root (/ ).

solusi 1

Setel rumah pengguna yang dibatasi ke tampilannya di bawah chroot:

[email protected]:~ # usermod -d /username username

peringatan 1

Jika ada pengguna yang tidak dibatasi atau skrip administrasi yang menggunakan ekspansi tilde bash seperti ~username itu akan meluas ke /username sekarang, bukan itu yang dimaksud.

Juga admin yang membuat sftponly pengguna harus ingat untuk menggunakan rumah non-default. Dapat dipecahkan dengan skrip. Yang harus diingat oleh admin untuk digunakan.

solusi 2

Ini adalah alternatif dari yang sebelumnya yang akhirnya kami gunakan:

[email protected]:~ # ln -s . /home/home

Yaitu membuat symlink di dalam /home ke dirname sendiri. Sekarang di bawah chroot /home/username menunjuk ke direktori yang sama seperti tanpa chroot. Untuk pengguna terbatas yang masuk dengan sftp akan muncul sebagai /username . Direktori ini dapat ditulis oleh pemiliknya (pengguna terbatas). Pengguna yang dibatasi tidak dapat mencantumkan direktori induk atau direktori home dari salah satu saudara berdasarkan nama.

Satu-satunya hal yang istimewa tentang sftponly pengguna adalah partisipasinya dalam sftponly kelompok. Kami merasa lebih mudah menanganinya daripada solusi 1.

memperingatkan 2

  1. Anda tidak dapat memiliki pengguna bernama 'home' dengan direktori home /home/home
  2. Anda harus berhati-hati dengan skrip yang melewati /home hierarki dan ikuti symlink.

Anda perlu membuat struktur di dalam direktori home pengguna, seperti dir masuk dan keluar. Dir tersebut harus dimiliki oleh pengguna dan di sana dia akan dapat meletakkan dan mendapatkan file.


Saya memiliki pengaturan yang sama di server kami. Kami menggunakan konfigurasi SSHD yang sama. Direktori rumah pengguna dimiliki oleh root dan di dalamnya terdapat folder documents dan public_html dimiliki oleh masing-masing pengguna. Pengguna kemudian masuk menggunakan SFTP dan menulis ke folder tersebut (tidak langsung ke rumah). Karena SSH tidak diizinkan untuk mereka, itu berfungsi dengan baik. Anda dapat menyesuaikan direktori mana yang akan dibuat untuk pengguna baru di /etc/skel/ (minimal di openSUSE, saya tidak begitu paham dengan distro lain).

Kemungkinan lain adalah ACL (dokumentasi openSUSE) - ini dapat menambahkan izin menulis untuk masing-masing pengguna untuk direktori home-nya.


Linux
  1. Ssh Dan Izin Direktori Rumah?

  2. Debian – Memindahkan /var, /home Untuk Memisahkan Partisi?

  3. “tidak dapat Membuat Direktori Cache /home//.composer/cache/repo/https—packagist.org/, Atau Direktori Tidak Dapat Ditulis. Melanjutkan Tanpa Cache”?

  1. Bagaimana cara menonaktifkan Gnome dari pembuatan Dokumen/ Video/ di HOME?

  2. Mengapa meletakkan hal-hal selain /home ke partisi terpisah?

  3. Edit direktori home untuk pengguna LDAP di Linux

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Xemacs:Muat Semua File Di /home/barry/.emacs_barry?

  3. Perlu memperbaiki izin file di direktori home pengguna