Membuat akun UNIX yang hanya menjalankan satu perintah

13

Apakah ada cara untuk membuat akun pengguna di Solaris yang memungkinkan pengguna untuk menjalankan satu perintah saja? Tidak ada shell login atau yang lainnya. Aku mungkin bisa melakukannya dengan /usr/bin/falsedi /etc/passwddan hanya mendapatkan pengguna untuk ssh <hostname> <command>, tetapi ada cara yang lebih baik untuk melakukannya?

Will Dowling
sumber

Jawaban:

15

Anda bisa menggunakan perintah paksa jika pengguna hanya bisa terhubung melalui ssh. Pada dasarnya, setiap kali pengguna terhubung melalui ssh dengan kunci tertentu dan nama pengguna tertentu, Anda memaksanya untuk mengeksekusi perintah (atau skrip atau) yang Anda tentukan di .ssh / berwenang_kunci. Perintah yang dikeluarkan oleh pengguna akan diabaikan.

Sebagai contoh:

# in .ssh/authorized_keys
command="cd /foo/bar && /path/to/scripts/my_script.sh arg1 arg2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa public_key
Barthelemy
sumber
Baik Anda berdua benar. Apa yang saya lakukan adalah membuat skrip yang memasok menu pada prompt dan menggunakan perintah cek paksa di .ssh / Authorized_keys pada server di depan kunci untuk pengguna yang berwenang. Ini sekarang memungkinkan dia untuk ssh ke server dan pada prompt diberikan menu yang bagus dengan beberapa perintah untuk dijalankan. Tidak ada lagi yang bisa dijalankan. Hari hari menyenangkan!
Will Dowling
2
Diedit; Anda memerlukan opsi ini untuk mengamankan perintah paksa: "no-port-forwarding, no-X11-forwarding, no-agent-forwarding, no-pty".
Tobu
11

Anda bisa mengatur shell pengguna itu ke skrip hanya menjalankan perintah yang ingin Anda izinkan: Setiap kali pengguna login, perintah dijalankan, maka pengguna keluar. Dan karena tidak ada "shell penuh" Anda tidak perlu berurusan dengan pengguna yang mencoba hal-hal yang funky;)

tante
sumber
0

Saya bertanya-tanya apakah Anda bisa melakukan ini dengan RBAC dan memberikan pengguna shell istimewa (pfsh, pfcsh, atau pfksh) dan membuat profil untuk perintah yang diizinkan dijalankan oleh pengguna.

sleepyweasel
sumber