Cambia la posizione della home directory di root


10

Vorrei cambiare la posizione della home directory di root da / root a / var / root. Ero in grado di farlo con usermod:

usermod -d /var/root root

Tuttavia, con l'ultima versione di usermod, non è possibile modificare la directory dell'utente attualmente connesso. Sto cercando di cambiare la home directory di root all'avvio in uno script di installazione di sistema che viene eseguito al primo avvio di un sistema, quindi non posso davvero essere un altro utente.

C'è un altro modo per cambiare la home directory dell'utente attualmente connesso (root in questo caso)?

Probabilmente potrei sed / etc / passwd, ma questo sembra sciatto.


Collegamento reale / da root a / var / root?
Garrett,

È possibile modificare / etc / passwd manualmente, suppongo.
billc.cn,

Risposte:


11
  1. L'unico problema con la modifica manuale /etc/passwdè che potrebbe esserci una corsa se qualche altro utente o programma modifica questo file mentre lo tieni aperto nel tuo editor. In questo caso, tale modifica andrà persa quando si salva il file. Se sei sicuro che questo problema non si applichi a te (nessun altro utente ha effettuato l'accesso, ecc.), Puoi procedere e modificare/etc/passwd

  2. Assicurarsi che la directory principale della radice sia disponibile quando si avvia in modalità utente singolo, ad es. Dovrebbe trovarsi su un filesystem di root.

  3. Vari trucchi come la creazione di un utente secondario con uid 0, il passaggio ad esso e la modifica della home directory di root, non funzioneranno. I controlli per l'utente attualmente connesso sono basati su uid.


5
Utilizzando vipwo in sudoeditgrado di proteggere dal n. Per quanto riguarda il n. 2, una home directory mancante di solito provoca solo un avviso.
user1686

@grawity: grazie per le informazioni su vipw, non lo sapevo. Penso che usare vipw sia probabilmente la migliore soluzione in generale.
haimg
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.