Nell'ambiente del sistema operativo Linux, una shell può essere descritto come un programma che prende gli input dell'utente dalla tastiera del computer sotto forma di comandi e li interpreta allo scopo di produrre risultati immediati di esecuzione o portare a un'altra istanza di esecuzione del programma.
Man mano che acquisirai familiarità con Linux, avrai l'opportunità di incontrare e interagire con molti ambienti shell orientati a Linux come bash, ksh, fish, sh e zsh. A causa della popolarità di Bash Shell , è molto probabile che tu lo stia utilizzando ora come shell predefinita sul tuo sistema Linux.
Perché modificare la shell predefinita in Linux?
La scelta di modificare la shell Linux predefinita ha senso per i seguenti motivi:
- Un nologin simile a una shell Linux shell disabilita/blocca facilmente il normale accesso degli utenti, quindi un aspetto chiave della gestione degli utenti di Linux.
- Un programma/script di shell wrapper consente di ritardare l'esecuzione dei comandi dell'utente fino a quando l'utente non li registra. In questo caso, la shell di login dell'utente è specifica per il wrapper della shell.
- Su una rete condivisa, soddisfi le esigenze specifiche degli utenti, come quelle associate ai diritti amministrativi quando modifichi la shell predefinita di Linux.
Elenco di shell di accesso valide nel sistema Linux
Prima di considerare la modifica della shell predefinita nel tuo sistema Linux, elenca prima le shell di accesso valide che sono a disposizione del tuo sistema operativo Linux:
$ cat /etc/shells
Prima di procedere e dimostrare come possiamo passare da una shell Linux a un'altra, prendi nota di quanto segue:
- Solo le shell elencate in /etc/shells può essere cambiato da utenti Linux normali e che hanno effettuato l'accesso.
- Shell non elencati in /etc/shells il file può essere eseguito/eseguito solo da un utente root/sudoer.
- Gli account del sistema operativo Linux con shell di accesso limitate possono essere modificati solo dopo aver effettuato l'accesso come utente root/sudoer.
Modi per modificare la shell Linux predefinita
Esamineremo i seguenti approcci per modificare la shell predefinita in Linux.
Metodo 1:utilizzo dell'utility usermod
L'uso principale di usermod l'utilità è esclusivamente per la modifica dei dettagli dell'account utente Linux archiviati in /etc/passwd file. Utilizzando la mod utente comando insieme a -s
o --shell
l'opzione comando consente di modificare la shell Linux predefinita.
Il comando seguente controlla le informazioni sull'account come la shell predefinita per l'utente dnyce .
$ grep dnyce /etc/passwd
Come puoi vedere, il dnyce l'utente sta usando bash come shell Linux predefinita. Per cambiare da /bin/bash su /bin/trattino , esegui il seguente comando:
$ sudo usermod --shell /bin/dash dnyce
Metodo 2:utilizzo dell'utilità chsh
Il chsh Il comando utility usa anche il -s
o --shell
opzioni durante la modifica della shell Linux predefinita.
Cambiamo la shell corrente da /bin/dash su /bin/rbash .
$ sudo chsh --shell /bin/rbash dnyce
Metodo 3:utilizzo del file /etc/passwd
Apri /etc/passwd file e modificalo nella tua shell Linux predefinita preferita.
$ sudo nano /etc/passwd
Salva il file e conferma che le modifiche sono avvenute con il seguente comando:
$ grep dnyce /etc/passwd
Abbiamo compreso la necessità di cambiare la shell Linux predefinita e implementato alcune metodologie pratiche per raggiungere tali obiettivi.