Creazione di un utente che non può ottenere una shell interattiva


17

Cosa sono le shell interattive e non interattive?

Domande: creare un utente john che non dovrebbe ottenere una shell interattiva.

Come possiamo farlo?

Risposte:


9

Il /etc/passwdfile ha come ultimo elemento sulla riga di un utente il programma da eseguire al momento dell'accesso. Per gli utenti normali questo è in genere impostato su /bin/sho altra shell (ad esempio bash, zsh).

Tradizionalmente, le identità utilizzate per possedere processi o file o altre risorse hanno la loro "shell" impostata /bin/falsecome in

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

Il syslog pseudo-utente possiede /var/log/sysloged è l'unico UID che ha i permessi di scrittura per quel file, ma non si può accedere come syslog utente in quanto non è necessario eseguire alcun interprete di comandi.


9

Per quanto riguarda la domanda a cui stai cercando di rispondere:

Crea un utente john che non dovrebbe ottenere una shell interattiva.

La domanda significa "Creare un utente di nome johnche non sarà in grado di accedere ed eseguire comandi da una shell". Interactive descrive il modo in cui funziona la shell: l'utente digita qualcosa e la shell fa qualcosa di conseguenza (esiste una sorta di comunicazione tra l'utente e la shell). La parola "interattivo" in realtà non aggiunge alcuna informazione alla domanda, poiché finché c'è un utente che digita i comandi, la sessione della shell è interattiva.

Esiste anche la modalità non interattiva, in cui l'utente salva una serie di comandi che desidera eseguire in un file (chiamato script di shell) ed esegue il file in seguito. Alcuni comandi si comportano diversamente a seconda che la shell sia eseguita in modo interattivo o non interattivo. Puoi leggere di più qui (questo documento è per bash, ma lo stesso concetto vale per altre shell).

Su come creare un utente di questo tipo, se scorri man useraddc'è un'opzione per impostare la shell di accesso, -so --shell. Puoi anche creare un utente normalmente, in ogni caso lo desideri (cosa che suppongo tu sappia già?), Quindi modificare /etc/passwdcome nella risposta di msw .


3

Sì, cambiare la shell nel file delle password (/ etc / passwd) a qualche programma che non non consentirà una fuga di shell.

se vuoi essere un bofh / bin / false farà esattamente quello che vuoi.


-1
adduser username -s /sbin/nologin

2
Si noti che il nome utente è specificato nella domanda come "john". Non farebbe male usare una piccola prosa per spiegare cosa sta facendo il tuo comando e perché soddisfa i requisiti.
Jeff Schaller
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.