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 27–5.
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.
#!/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 définit la variable PASSWD sur un mot de passe superutilisateur chiffré, obtenu à partir d'une entrée existante du fichier /etc/shadow d'un système.
#create a temporary input file |
La commande suivante crée un fichier d'entrée temporaire de /a/etc/shadow.
cp /a/etc/shadow /a/etc/shadow.orig |
La commande suivante change l'entrée superutilisateur du fichier /etc/shadow du 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, donne accès 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.$$ |