Niutil, questo sconosciuto

Credo sia arrivato il momento di aggiungere qualcosa a quanto già marginalmente accennato sul forum in questo thread relativo all'abilitazione dell'utente root. Come anticipato allora, la totalità delle operazioni consentite da NetiInfo manager, può venire eseguita da terminale con il comando niutil e le opzioni del caso di cui NetInfo manager non è niente altro che l'interfaccia grafica. Ma vediamo con ordine.

Iniziamo per prima cosa a verificare se l'utente root è "abilitato. Questo si può fare facilissimamente da terminale digitando :

niutil -read . /users/root

Vi comparirà l'elenco delle proprietà dell'utente root in maniera simile a quanto vedete qui sotto :


Fate attenzione alla "proprietà" authentication_autority, avete indovinato? "DisabledUser" vuole dire che l'utenticazione di quell'utente è disabilitata ovvero, non sarà accessibile nell'elenco degli utenti al login. Se, come in questo caso, non lo avete mai abilitato, potete provare a farlo ora sempre da terminale con il comando seguente:

sudo niutil -createprop . /users/root authentication_authority ';ShadowHash;'

Notare che qui occorre fare precedere il tutto dal comando sudo poiché non si tratta di una semplice operazione di lettura, ma di una modifica al database NetInfo in maniera analoga a quando aprite un lucchetto in OSX. Dando poi nuovamente niutil -read . /users/root, potrete verificare cosa è cambiato. Naturalmente potete controllare il tutto anche con NetInfo manager e comunque, ai meno esperti consiglio di usare il copia incolla per evitare di fare errori o dimenticare qualche spazio. In realtà, l'utente root in ambiente UNIX esiste sempre ed è sempre parte degli amministratori del vostro computer.

Se volete togliervi la curiosità, attivate nuovamente il terminale e da li digitate: niutil -read . /groups/admin questo vi darà un elenco degli utenti registrati nel gruppo admin. A questo punto, se root non era mai stato abilitato in precedenza, occorre anche assegnargli una password per completare il lavoro iniziato in precedenza. Questa operazione con UNIX è molto semplice da eseguire con il comando passwd.



Da terminale digitate sudo passwd root e, dopo aver ottenuto l'accesso dando la vostra password utente, ora al prompt digitate la password che volete assegnare a root. (vi verrà chiesta due volte ma è normale, per sicurezza). Nello stesso modo potrete in futuro cambiarla a root o qualunque altro utente, by-passando tutte le finestre delle preferenze, utili a chi non ha dimestichezza con UNIX ma decisamente meno veloci.

Aggiungo a quanto detto sopra un'altra informazione che potrebbe essere utile nel caso vi trovaste a dover risolvere un'emergenza abbastanza comune. Il comando niutil da terminale può servire anche quando (erroneamente) si rinomina dal finder la cartella home dell'utente e poi, al successivo login, sembra di aver perduto tutte le informazioni. Il nome della "casetta" come molti lo chiamano, non è nient'altro che una proprietà memorizzata nel database netinfo per quel particolare utente e che identifica la sua directory home. Al login, OSX va a leggere nel database NetInfo le informazioni relative all'utente tipo password, shell, e quant'altro, oltre naturalmente all'indirizzo della home directory.

Se non la trova la ricrea assumendo che sia il primo login; questo lo potrete verificare dando un'occhiata nella directory /Users dove troverete entrambe la nuova "casetta" e la vecchia. Basta sostituire il nome vecchio con quello nuovo all'interno della proprietà "home" di NetInfo in questo modo :


sudo niutil -createprop . /users/vecchionome home /Users/nuovonome


Et voilà, il gioco è fatto! Avete sostituito la directory home vecchia con la nuova rimettendo a posto tutto quanto. (Come al solito, molta attenzione alla punteggiatura in particolare /users e /Users non a caso maiuscolo e minuscolo). Analogamente sarà possibile cambiare tutte le caratteristiche utente che volete, non sono niente altro che "proprietà" inserite in un database. Mitico OSX. Consiglio a chi volesse sperimentare quanto illustrato, di creare un apposito utente, non si sa mai.

Tutorial di : Gran Maestro