Jawaban:
Untuk menjadi bertele-tele, itu tidak akan menjadi ctrl + c, tetapi SIGHUP
(lebih dekat ke ctrl + d) yang membunuh aplikasi.
Pada dasarnya Anda bisa memasukkan apa pun yang Anda inginkan ke dalam shell pengguna /etc/passwd
. Cukup ganti default pada baris passwd pengguna (mungkin /bin/bash
) dengan program lain. Program itu bisa berupa skrip, seperti /usr/bin/tail_log_file
, dengan konten ini, dimiliki oleh root: root, dengan umode 0755:
#!/bin/rbash
tail -f /path/to/logfile
Anda dapat menggunakan beberapa juru bahasa selain rbash, tetapi disarankan untuk menggunakan shell yang dibatasi dalam kasus-kasus seperti itu.
Untuk menjadi sangat luar biasa tentang hal itu, Anda harus menambahkan jalur skrip untuk /etc/shells
, tetapi saya biasanya tetap berhasil.
Perlu diingat juga bahwa pengguna berpotensi menempatkan skrip di latar belakang, atau menggunakan beberapa opsi ( ssh username@host bash
) dan masih mendapatkan shell. Jika Anda ingin membatasi pengguna dengan cara seperti itu, izin sistem file yang baik adalah satu-satunya solusi nyata.
/etc/shells
adalah untuk memungkinkan pengguna yang memiliki sesuatu yang lain sebagai shell mereka untuk mengatur shell mereka untuk ini; superuser ( root
) selalu dapat mengubah shell siapa pun menjadi apa pun yang mereka inginkan.
/etc/shells
karena hal itu akan memungkinkan pengguna untuk mengubah cangkangnya (karena /usr/bin/tail_log_file
kemudian akan dianggap sebagai "cangkang tidak dibatasi")!
Anda dapat mengonfigurasi ssh untuk menjalankan perintah pilihan Anda saat Anda masuk menggunakan otentikasi kunci publik. Untuk melakukan ini, buat sepasang kunci:
djs@sardinia:~$ ssh-keygen -f restricted-key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in restricted-key.
Your public key has been saved in restricted-key.pub.
The key fingerprint is: b1:8f:26:47:c2:c5:f2:8d:ed:a0:c4:bd:9a:30:9d:08 djs@sardinia
[...]
restricted-key.pub
berisi baris yang cocok untuk dimasukkan ke dalam file pengguna ~/.ssh/authorized_keys
:
ssh-rsa AAAA...UDz47Nl djs@sardinia
tetapi Anda dapat menambahkan perintah untuk ini, dan ssh akan menjalankan perintah itu ketika masuk dengan kunci:
command="tail -f /my/interesting/file" ssh-rsa AAAA...UDz47Nl djs@sardinia
Kemudian pengguna dapat ssh menggunakan mesin ssh -i restricted-key
.