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?

pengguna2914
sumber

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.

msw
sumber
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 .

phhehehe
sumber
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.

David Harris
sumber
-1
adduser username -s /sbin/nologin
H2 Mac
sumber
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