Apa itu shell interaktif dan non-interaktif?
Pertanyaan: Buat pengguna john yang seharusnya tidak mendapatkan shell interaktif.
Bagaimana kita bisa melakukan ini?
The /etc/passwd
berkas memiliki sebagai item terakhir pada baris pengguna program yang akan dijalankan setelah login. Untuk pengguna normal ini biasanya diatur ke /bin/sh
atau shell lain (misalnya bash, zsh).
Secara tradisional, identitas yang digunakan untuk memiliki proses atau file atau sumber daya lain memiliki "shell" mereka ditetapkan /bin/false
seperti pada
syslog:x:101:102::/home/syslog:/bin/false
Syslog pseudo-pengguna memiliki /var/log/syslog
dan merupakan satu-satunya UID yang memiliki izin menulis untuk file itu, tetapi seseorang tidak dapat masuk sebagai syslog pengguna karena tidak ada interpreter perintah yang harus dijalankan.
Mengenai pertanyaan yang Anda coba jawab:
Buat pengguna john yang seharusnya tidak mendapatkan shell interaktif.
Pertanyaannya berarti "Buat pengguna bernama john
yang tidak akan bisa masuk dan menjalankan perintah dari shell". Interaktif menjelaskan cara kerja shell: pengguna mengetik sesuatu, dan shell melakukan sesuatu yang sesuai (ada semacam komunikasi antara pengguna dan shell). Kata "interaktif" tidak benar-benar menambahkan informasi apa pun ke pertanyaan, karena selama ada perintah mengetik pengguna, sesi shell bersifat interaktif.
Ada juga mode non-interaktif, di mana pengguna menyimpan serangkaian perintah yang ingin mereka jalankan dalam file (disebut skrip shell), dan mengeksekusi file setelahnya. Beberapa perintah berperilaku berbeda tergantung pada apakah shell dijalankan secara interaktif atau non-interaktif. Anda dapat membaca lebih lanjut di sini (dokumen ini untuk bash
, tetapi konsep yang sama berlaku untuk shell lain).
Tentang cara membuat pengguna seperti itu, jika Anda membaca sekilas man useradd
ada pilihan untuk mengatur shell login, -s
atau --shell
. Anda juga dapat membuat user normal, dengan cara apapun yang Anda inginkan (yang saya asumsikan Anda sudah tahu?), Lalu edit /etc/passwd
seperti di jawaban MSW ini .
adduser username -s /sbin/nologin