Bagaimana saya bisa membuat pengguna hanya untuk sftp?


15

Saya telah menambahkan pengguna ke sistem melalui adduseralat. Kemudian, dalam /etc/passwd, saya mencoba mengubah /bin/bashke /sbin/nologinatau ke /dev/null, tetapi tidak ada yang berhasil.

Saya ingin pengguna tidak memiliki opsi untuk mendapatkan shell interaktif, dan hanya untuk digunakan sftp. Apakah ada cara?

Saya tahu itu sudah ditanyakan di sini sebelumnya, tetapi sepertinya tidak ada yang memberikan respons yang memuaskan.


Apa yang Anda maksud dengan "tidak beruntung"?
Paweł Brodacki

Maksud saya remote scp / sftp tidak berfungsi. Saya menyelesaikannya dengan menggunakan shell scponly seperti yang disarankan oleh Iain
Toni Rosa

Jawaban:


9

Perintah yang harus Anda gunakan untuk mengganti shell adalah chsh . Shell nologin bisa /sbin/nologinatau /usr/sbin/nologin(periksa yang Anda miliki dengan melihat /etc/shells) tetapi /bin/falsemungkin akan menjadi pilihan yang lebih baik.

chsh -s /bin/false user

Anda harus mempertimbangkan mengatur sesuatu seperti scponly yang akan melakukan apa yang Anda inginkan.


Terima kasih atas jawaban anda. Saya telah mencoba dengan shell di dalam / etc / shell tanpa hasil ... / bin / false memberikan "koneksi yang hilang" dan / sbin / nologin mengembalikan "Akun ini saat ini tidak tersedia." Saya akan coba ini secara langsung
Toni Rosa

Saya memecahkannya menggunakan shell scponly! Cheers
Toni Rosa

3
Jawaban ini adalah jarum di jerami! Pastikan /bin/falsedan /bin/nologinbenar-benar tersedia di /etc/shells!
Afr

@Afri Baik, tapi ... Anda benar-benar ingin membaca serverfault.com/questions/328395/… . Ini sangat kontraindikasi.
Reinderien

@Afr tidak menaruh nologindi /etc/shells! serverfault.com/a/328424
RobAu

9

Anda juga harus dapat melakukannya dengan OpenSSH 4.9 dan yang lebih baru, yang dengannya Anda juga dapat melakukan chroot untuk meningkatkan keamanan.

Di Anda /etc/ssh/sshd_config:

Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no

Lalu lari:

chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads

Pengguna hanya dapat menulis di / home / pengguna / unggahan.

https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory


+1 Saya telah memasukkan ini ke daftar untuk diselidiki.
user9517

1
Saya telah menggunakannya dan berfungsi dengan baik - Anda juga dapat memberikan pengguna pilihan untuk masuk ke lingkungan chroot dengan sebuah shell, tetapi dalam hal ini Anda harus menyalin perpustakaan minimum dan beberapa utilitas lain seperti yang diharapkan. Jailkit ( olivier.sessink.nl/jailkit ) berguna untuk itu.
Eduardo Ivanec

Terima kasih, ForceCommand adalah petunjuk. Saya tidak perlu chroot, tetapi saya ingin masuk ke SFTP dengan akun layanan.
AnrDaemon


1

Anda dapat menambahkan pengguna dengan -s /bin/falsemenonaktifkan shell mereka, tetapi apa yang benar-benar harus Anda perhatikan adalah pengaturan akun sftp chroot. Ini akan "memenjarakan" pengguna ke direktori mereka sendiri dan mencegah mereka untuk dapat mengakses atau memodifikasi file atau direktori di luar direktori chroot.


Terima kasih atas jawaban Anda, tetapi sepertinya tidak berhasil. Saya mendapatkan "koneksi terputus" setiap kali saya mencoba pengguna menggunakan shell / bin / false.
Toni Rosa
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.