Guide d'installation Solaris 9 12/03

Définition d'un mot de passe superutilisateur à l'aide d'un script de fin

Votre système se réinitialise lorsque le logiciel Solaris est installé. Avant que la procédure d'initialisation ne se termine, le système vous invite à saisir votre mot de passe superutilisateur. Le système ne s'initialisera pas tant que vous n'aurez pas saisi un mot de passe.

Un script de fin nommé set_root_pw figure en exemple dans le répertoire auto_install_sample. Ce script de fin illustre la procédure de définition automatique du mot de passe superutilisateur, sans invite. set_root_pw fait l'objet de l'Exemple 24–5.


Remarque :

si vous définissez le mot de passe superutilisateur d'un système dans un script de fin, d'autres utilisateurs risquent de tenter de le découvrir à partir du mot de passe crypté dans votre script de fin. Assurez-vous que vous êtes bien protégé contre les tentatives de découverte de votre mot de passe superutilisateur.



Exemple 24–5 Définition du mot de passe superutilisateur d'un système à l'aide d'un script de fin

	 #!/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 file
 cp /a/etc/shadow /a/etc/shadow.orig
 
	 mv /a/etc/shadow /a/etc/shadow.orig
 	nawk -F: '{
         if ( $1 == "root" )
           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.orig
 # set the flag so sysidroot won't prompt for the root password
 sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE}> /tmp/state.$$
  mv /tmp/state.$$ ${SI_SYS_STATE}

Certaines commandes de cet exemple sont décrites dans ce qui suit.