Come posso cambiare la mia shell predefinita su un account di dominio


13

Uso un account di dominio samba4 per accedere al mio laptop. Volevo provare zsh, ma dal momento che il mio utente non risiede /etc/passwdho scoperto che chshnon è possibile trovare il mio utente. Qualcuno può consigliare come posso cambiare il mio login_shell?

Non riuscivo a vedere nulla nel mio ldap.conf, nssswitch.confo qualcosa /etc/pam.dche potesse aiutare ...

Guardando il controller di dominio ho pensato che forse avrei potuto usare lo strumento samba, ma non ho visto nulla di aiuto che mi indicasse la giusta direzione ...

Risposte:


24

Ho chiesto questo nel canale #suse su Freenode e Miuku ha suggerito lo stesso di Arul, tuttavia, ha menzionato due cose, se stavo usando un dominio Windows avrei potuto impostare l'attributo loginShell.

Purtroppo, sono su un dominio samba, quindi non è stato d'aiuto. Ma il suo suggerimento finale è stato perfetto, ottieni l'output di:

getent passwd USERNAME

Questo avrà l'equivalente valido per il tuo utente in / etc / passwd, prendilo, incollalo in / etc / passwd e aggiorna la shell alla fine per il percorso valido della shell che vuoi usare. In questo modo non lo cambia per tutti gli utenti e puoi assicurarti che la shell sia sul computer su cui stai configurando questo prima di apportare la modifica.


Se non si desidera copiare e incollare, è possibile utilizzare: getent passwd `id -un` | sudo tee -a /etc/passwd. Non sono sicuro che funzioni in tutte le shell ma almeno bash e tcsh sono ok.
Tom Saleeba,

Facendo questo su un box RHEL 7 collegato a un dominio Windows AD, mi è stato bloccato il server fino a quando la linea non è stata rimossa dal file / etc / passwd ...
Taegost,

Grazie per l'informazione @Taegost, non avevo provato su RHEL
Rumbles il

5

Ho avuto esattamente lo stesso problema. Poiché non tutte le macchine nel mio dominio hanno installato zsh e poiché non volevo influenzare tutti gli utenti, ho finito per inserire il mio .bashrc:

if [ -x /usr/bin/zsh ]; then
  echo 'starting zsh'
  # export SHELL=/bin/zsh #edit: this is probably not what you want, see the comment.
  exec /usr/bin/zsh
fi

Questo potrebbe non essere elegante, ma almeno riesce a fare il lavoro.


Qualcuno nel mio lavoro stava facendo qualcosa di simile di recente, aveva problemi con il suo metodo che non caricava il file .zshrc. Non so se il tuo metodo funzionerebbe in questo senso, l'hai provato? Inoltre, la tua variabile SHELL non è la stessa del percorso del tuo zsh bin, è corretto? Ho cambiato la loro configurazione con il mio metodo di impostazione nel file passwd
Rumbles,

Interessante: il mio .zshrc è letto correttamente. riguardo al tuo secondo punto, grazie per averlo migliorato, è stato un errore dalla mia parte. Vedi qui per una risposta: unix.stackexchange.com/questions/330233/…
Matteo Giani,

Beh, è ​​sicuramente un modo per farlo, preferisco ancora impostarlo nel file / etc / passwd come con la mia risposta accettata poiché non invochi bash quindi carichi zsh con bash (in più immagino che se premi ctrl-D in il tuo setup sei passato a una shell bash?) - Richiede all'utente di assicurarsi che zsh sia installato e che un amministratore effettui la modifica
Rumbles

Non sarebbe meglio, invece di usare /usr/bin/zsh, invece di utilizzare exec /usr/bin/zshper sostituire il bashprocesso shell con il zshprocesso shell?
Tripp Kinetics,

Penso che potresti avere ragione @TrippKinetics.
Matteo Giani,

2

Se si ha accesso per modificare la configurazione del controller di dominio samba, è possibile impostare la seguente proprietà che consente di impostare la shell in smb.conf

template shell    = /bin/zsh

Non sono sicuro di cosa succede se si accede a un computer su cui non è installato zsh (non tutte le distribuzioni hanno zsh installato per impostazione predefinita), ma la mia ipotesi è che invocherà distro shell di default.

Se vuoi semplicemente provarlo, digita zsh per ottenere una subshell di cui sono sicuro che lo sai già.


Grazie, ma ciò non influirà su tutti gli utenti, non solo sul mio?
Rumbles,

Sì, è un parametro globale che interessa tutti gli utenti. In questo caso, tutti gli utenti che hanno zshinstallato. Non sono sicuro che puoi limitarlo a un utente specifico, ma vorrei controllare i idmap uidparametri che potrebbero consentirti di farlo.
Arul Selvan,

Grazie, ma non è quello che sto cercando. Non voglio cambiare la shell di tutti, voglio solo cambiare la shell. Ho provato a cambiare questa impostazione nel mio smb.conf locale e dopo il riavvio non ha avuto alcun effetto
Rumbles
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.