Menciptakan pengguna yang tidak bisa mendapatkan shell interaktif


17

Apa itu shell interaktif dan non-interaktif?

Pertanyaan: Buat pengguna john yang seharusnya tidak mendapatkan shell interaktif.

Bagaimana kita bisa melakukan ini?

Jawaban:


9

The /etc/passwdberkas memiliki sebagai item terakhir pada baris pengguna program yang akan dijalankan setelah login. Untuk pengguna normal ini biasanya diatur ke /bin/shatau shell lain (misalnya bash, zsh).

Secara tradisional, identitas yang digunakan untuk memiliki proses atau file atau sumber daya lain memiliki "shell" mereka ditetapkan /bin/falseseperti pada

syslog:x:101:102::/home/syslog:/bin/false

Syslog pseudo-pengguna memiliki /var/log/syslogdan 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.


9

Mengenai pertanyaan yang Anda coba jawab:

Buat pengguna john yang seharusnya tidak mendapatkan shell interaktif.

Pertanyaannya berarti "Buat pengguna bernama johnyang 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 useraddada pilihan untuk mengatur shell login, -satau --shell. Anda juga dapat membuat user normal, dengan cara apapun yang Anda inginkan (yang saya asumsikan Anda sudah tahu?), Lalu edit /etc/passwdseperti di jawaban MSW ini .


3

Ya, ganti shell di file kata sandi (/ etc / passwd) ke beberapa program yang tidak akan membiarkan shell keluar.

jika Anda ingin menjadi bofh / bin / false akan melakukan apa yang Anda inginkan.


-1
adduser username -s /sbin/nologin

2
Perhatikan bahwa nama pengguna ditentukan dalam pertanyaan sebagai "john". Tidak ada salahnya menggunakan sedikit prosa untuk menjelaskan apa yang sedang dilakukan perintah Anda dan mengapa memenuhi persyaratan.
Jeff Schaller
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.