Guida all'installazione di Solaris 9

Impostazione della password di root con uno script finale

Al termine del processo di installazione di Solaris, il sistema si riavvia. Prima che il processo di boot sia completato, il sistema richiede la password di root. La procedura di boot non prosegue finché la password non viene inserita.

Nella directory auto_install_sample viene salvato uno script finale di nome set_root_pw. Questo script mostra come impostare la password di root automaticamente, senza che il sistema la richieda. Lo script set_root_pw è riportato nell'Esempio 24–4.


Esempio 24-4 Impostazione della password di root con uno script finale

	 #!/bin/sh
	 #
	 #       @(#)set_root_pw 1.4 93/12/23 SMI
	 #
	 # This is an example Bourne shell script to be run after installation.
	 # It sets the system's root password to the entry defined in PASSWD.
	 # The encrypted password is obtained from an existing root password entry
	 # in /etc/shadow from an installed machine.
 
	 echo "setting password for root"
 
	 # set the root password
 PASSWD=dKO5IBkSF42lw
	 #create a temporary input file1
 cp /a/etc/shadow /a/etc/shadow.orig2
 
	 mv /a/etc/shadow /a/etc/shadow.orig
 	nawk -F: '{
         if ( $1 == "root" )3
           printf"%s:%s:%s:%s:%s:%s:%s:%s:%s\n",$1,passwd,$3,$4,$5,$6,$7,$8,$9
      else
		        printf"%s:%s:%s:%s:%s:%s:%s:%s:%s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9
      }' passwd="$PASSWD" /a/etc/shadow.orig> /a/etc/shadow
 #remove the temporary file
 rm -f /a/etc/shadow.orig4
 # set the flag so sysidroot won't prompt for the root password
 sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE}> /tmp/state.$$5
  mv /tmp/state.$$ ${SI_SYS_STATE}
  1. Imposta la variabile PASSWD su una password di root cifrata ricavata da una voce esistente nel file /etc/shadow del sistema.

  2. Crea un file di input temporaneo per /a/etc/shadow.

  3. Cambia la password di root nel file /etc/shadow per il sistema installato usando $PASSWD come campo per la password.

  4. Rimuove il file /a/etc/shadow temporaneo.

  5. Cambia l'istruzione da 0 a 1 nel file di stato, in modo che la password di root non venga richiesta all'utente. L'accesso al file di stato avviene tramite la variabile SI_SYS_STATE, il cui valore corrente è /a/etc/.sysIDtool.state. Per evitare problemi con lo script in caso di cambiamento di questo valore, fare sempre riferimento a questo file usando $SI_SYS_STATE. Il comando sed di questo esempio contiene un carattere di tabulazione dopo lo 0 e dopo l'1.



Nota -

Se si imposta la password di root del sistema con uno script finale, c'è il rischio che gli utenti cerchino di scoprirla accedendo alla password cifrata inclusa nello script finale. Occorre perciò adottare le misure di sicurezza appropriate per proteggere lo script.