Une fois le logiciel Solaris installé, le système redémarre. Avant que la procédure d'initialisation ne se termine, le système vous invite à saisir votre mot de passe root. 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 est illustré dans l'Exemple 4–6.
Si vous définissez le mot de passe root avec un script de fin, les utilisateurs peuvent essayer de découvrir le mot de passe depuis le mot de passe chiffré dans le script de fin. Assurez-vous que vous êtes bien protégé contre les tentatives de découverte de votre mot de passe root.
#!/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.
La commande suivante affecte à la variable PASSWD un mot de passe root chiffré obtenu d'une entrée existante dans le fichier /etc/shadow d'un système.
#create a temporary input file |
La commande suivante crée le fichier d'entrée temporaire /a/etc/shadow.
cp /a/etc/shadow /a/etc/shadow.orig |
La commande suivante remplace l'entrée root dans le fichier /etc/shadow par le nouveau système installé en utilisant $PASSWD comme champ de mot de passe.
if ( $1 == "root" ) |
La commande suivante supprime le fichier temporaire /a/etc/shadow .
rm -f /a/etc/shadow.orig |
La commande suivante change l'entrée 0 en 1 dans le fichier d'état, de sorte que l'utilisateur n'a pas à entrer son mot de passe superutilisateur. La variable SI_SYS_STATE , dont la valeur actuelle est /a/etc/.sysIDtool.state, permet d'accéder au fichier d'état. Pour éviter de rencontrer des problèmes si cette valeur était modifiée, référencez toujours ce fichier à l'aide de $SI_SYS_STATE. Dans la commande sed illustrée ici, un caractère de tabulation suit la valeur 0 et la valeur 1.
sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE} > /tmp/state.$$ |