Apakah Anda memerlukan shell untuk SCP?

33

Saya mengizinkan seorang teman akun lokal di komputer saya, khusus untuk SCP. Bisakah saya menentukan shell akunnya sebagai /bin/true, atau dengan cara lain membatasi akun, sementara masih mengizinkan SCP?

Gilles 'SANGAT berhenti menjadi jahat'
sumber

Jawaban:

39

Anda dapat mengatur shell pengguna ke rsshatau scponly, yang dirancang tepat untuk tujuan itu:

rssh adalah shell terbatas untuk digunakan dengan OpenSSH, hanya memungkinkan scp dan / atau sftp. Sekarang juga termasuk dukungan untuk rdist, rsync, dan cvs.

scponly adalah 'shell' alternatif (semacam) untuk administrator sistem yang ingin memberikan akses ke pengguna jarak jauh untuk membaca dan menulis file lokal tanpa memberikan hak istimewa eksekusi jarak jauh.

Ketika Anda menjalankan scp, daemon OpenSSH menjalankan scpproses dengan -fopsi. Ketika Anda menjalankan sftp, daemon OpenSSH menjalankan sftp-serverproses. Dalam kedua kasus, subproses dijalankan melalui shell pengguna, sehingga shell harus mendukung setidaknya perintah ini, dengan sintaks seperti Bourne. Setiap shell Bourne-style akan melakukan, seperti yang akan csh (saya pikir aturan kutipnya cukup kompatibel untuk sshdpenggunaan apa ). Rssh dan secara diam-diam mengizinkan perintah-perintah ini dan tidak ada yang lain. /bin/truebahkan tidak akan menjalankan perintah ini.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Jadi apakah ini berarti / bin / false atau / bin / true tidak akan berfungsi - atau hanya mengizinkan sftp?
Danny Staple
2
@DannyStaple Jika shell pengguna diatur ke /bin/falseatau program lain yang tidak melakukan apa pun, baik scp maupun sftp tidak akan berfungsi. Untuk kedua perintah, daemon SSH menjalankan perintah shell yang menjalankan proses server khusus ( scp -fatau sftp-server). Ini membutuhkan shell Bourne-style, atau setidaknya perkiraan yang cukup dekat (seperti rsshyang memungkinkan hanya beberapa perintah ini melalui).
Gilles 'SO- stop being evil'
3

Tidak, tidak. Seperti yang ditunjukkan Gilles, rssh bekerja sangat baik untuk tujuan ini, seperti halnya dengan scponly . Lihat juga diskusi dalam pertanyaan terkait ini .

Shadur
sumber
1
Mereka masih kerang, seperti yang ditunjukkan /bin/falsetidak akan bekerja, juga tidak akan chmod 644 ksh .
Steve-o