Después de instalar el software Solaris en el sistema, el sistema rearranca. Antes de que finalice el proceso de arranque, el sistema pide la contraseña root. El sistema no podrá concluir el arranque hasta que alguien finalice el arranque.
Una secuencia de finalización denominada set_root_pw se guarda en el directorio auto_install_sample. La secuencia de finalización muestra cómo fijar automáticamente la contraseña root, sin necesidad de indicador. set_root_pw se muestra en el Ejemplo 4–6.
Si establece la contraseña root del sistema con una secuencia de comandos de finalización, los usuarios podrían intentar descubrirla a partir de la contraseña cifrada en la secuencia de comandos de finalización. Procure proteger el sistema a fin de que los usuarios no puedan descubrir la contraseña 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} |
A continuación, se describen algunos comandos de este ejemplo:
El siguiente comando establece la variable PASSWD en una contraseña root encriptada que se obtiene de una entrada existente en un archivo /etc/shadow del sistema.
#create a temporary input file |
El siguiente comando crea un archivo de entrada temporal de /a/etc/shadow.
cp /a/etc/shadow /a/etc/shadow.orig |
El siguiente comando cambia la entrada root del archivo /etc/shadow por el sistema recién instalado con $PASSWD como campo de contraseña.
if ( $1 == "root" ) |
El siguiente comando elimina el archivo de entrada temporal /a/etc/shadow.
rm -f /a/etc/shadow.orig |
El siguiente comando cambia la entrada de 0 a 1 en el archivo de estado para que no se le pida al usuario la contraseña root. Es posible acceder al archivo de estado mediante la variable SI_SYS_STATE, que tiene un valor actual de /a/etc/.sysIDtool.state. Para evitar problemas con las secuencias si cambia este valor, haga siempre referencia a este archivo con la variable de entorno $SI_SYS_STATE. El comando sed que aparece aquí contiene un carácter de tabulación después de 0 y después de 1.
sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE} > /tmp/state.$$ |