Bagaimana cara menambahkan pengguna ssh yang hanya memiliki izin untuk mengakses folder tertentu?
useradd -d /var/www/xyz.com.tr/musteri -s /bin/bash -g sshd musteri
Saya membuat pengguna bernama musteri
. Saya mengatur folder dan grup home-nya. Jadi, saya ingin mengintegrasikan musteri
pengguna ke "/var/www/xyz.com.tr/musteri". Saya tidak ingin mengakses folder lain.
scponly
dalam shell, mungkin beroperasi dalamchroot
mode untuk membatasi aksesnya ke direktori itu dan di tempat lain.scponly chroot
ataurssh chroot
seharusnya mengarahkan Anda ke howtos).Jawaban:
Sepertinya Anda ingin müşteriler Anda memiliki akses transfer file ke folder tanpa benar-benar memberi mereka shell. Ini adalah hal yang baik karena seperti yang ditunjukkan binfalse , memberi orang kerang dengan akses terbatas itu rumit karena kerang perlu mengakses segala macam hal yang tersebar di sistem hanya untuk dijalankan.
Untuk memberikan akses SFTP ke folder tertentu, Anda dapat melakukan sesuatu seperti ini.
/etc/ssh/sshd_config
) dengan baris-baris iniIni akan mengaktifkan subsistem sftp di dalam SSH dan memaksa anggota grup sistem untuk menggunakan hanya sistem itu ketika masuk. Ini juga akan chroot mereka ke direktori home mereka. Anda bisa mengubahnya menjadi sub-folder home-director mereka juga dengan sesuatu seperti
ChrootDirectory %h/musteri_sftp
sehingga mereka tidak bisa melihat sisa file sistem mereka tetapi akan login langsung ke subfolder khusus folder home mereka.Kolay gelsin.
sumber
Menurut saya ini sangat sulit, kalau bukan tidak mungkin. Ketika pengguna terhubung melalui SSH ia setidaknya membutuhkan shell, dalam kasus Anda
bash
. Untuk mengeksekusi/bin/bash
ia membutuhkan izin untuk mengakses/bin
.bash
itu sendiri perlu membaca beberapa hal dari/etc
(misalnya/etc/bash.bashrc
), sehingga pengguna juga perlu mengakses/etc
. Dengan asumsi pengguna tidak hanya ingin berkeliaran di direktori ini, ia mungkin ingin membaca file, tetapi untuk mengeksekusi misalnyavim
ia juga perlu mengakses/usr/bin
.Ini hanya sedikit demonstrasi, ada beberapa dependensi lagi, misalnya saya tidak benar-benar tahu apa yang akan terjadi jika pengguna tidak memiliki akses ke
/tmp
..Anda harus memikirkan niat Anda. Apakah Anda hanya ingin seseorang memiliki akses baca / tulis ke bagian dari layanan web Anda? Kemudian Anda dapat mengatur sesuatu seperti FTP untuk mengekspor direktori tertentu ke pengguna ini. Jadi dia bisa membaca / menulis file ini tanpa akses SSH.
Solusi bagus lainnya adalah repositori. Misalnya mengatur repo GIT dan membiarkan pengguna mengkloningnya. Dia dapat melakukan perubahannya secara lokal dan mengirimkan patch kepada Anda. Anda dapat memutuskan apakah akan menerapkan tambalan ini atau tidak, kemunduran untuk tambalan buggy juga sangat mudah.
sumber
rbash
dirancang untuk melakukan hal ini.