När Solaris har installerats på ett system startas det om. Innan startprocessen har körts färdigt uppmanas användaren att ange rotlösenordet. Systemet kan inte avsluta startprocessen förrän någon anger ett lösenord.
Ett slutskript med namnet set_root_pw ligger i katalogen auto_install_sample. Slutskriptet visar hur du ställer in rotlösenordet automatiskt. set_root_pw visas i Exempel 27–5.
Om du anger systemets rotlösenord med ett slutskript kan användarna försöka ta reda på det med hjälp av det krypterade lösenordet i slutskriptet. Se till att du är skyddad mot användare som kan tänkas försöka ta reda på rotlösenordet.
#!/bin/sh # # @(#)set_root_pw 1.4 93/12/23 SMI # # Det här är ett exempel på ett skript i Bourne-skalet som körs efter installationen. # Det ställer in systemets rotlösenord till vad som definieras i PASSWD. # Det krypterade lösenordet hämtas från en befintlig rotlösenordspost # i /etc/shadow på en dator som är igång. echo "ställer in lösenordet för rot" # ställ in rotlösenordet PASSWD=dKO5IBkSF42lw #skapa en temporär indatafil 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 #ta bort den temporära filen rm -f /a/etc/shadow.orig # ange flaggan, så att sysidroot inte ber om rotlösenordet sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE}> /tmp/state.$$ mv /tmp/state.$$ ${SI_SYS_STATE} |
Följande är beskrivningar av några kommandon för det här exemplet.
Följande kommando ställer in variabeln PASSWD till ett krypterat rotlösenord, som hämtas från en befintlig post i ett systems /etc/shadow-fil.
#skapa en temporär indatafil |
Följande kommando skapar en temporär indatafil av /a/etc/shadow.
cp /a/etc/shadow /a/etc/shadow.orig |
Följande kommando ändrar rotposten i filen /etc/shadow för det nyinstallerade systemet med $PASSWD som lösenordsfält.
if ( $1 == "root" ) |
Följande kommando tar bort den temporära indatafilen av /a/etc/shadow.
rm -f /a/etc/shadow.orig |
Följande kommando ändrar posten från 0 till 1 så att användaren inte behöver ange rotlösenordet.. Statusfilen går att komma åt via variabeln SI_SYS_STATE, som för närvarande har värdet /a/etc/.sysIDtool.state. Hänvisa alltid till den här filen med hjälp av $SI_SYS_STATE, om du vill undvika problem med dina skript om värdet skulle råka ändras. Kommandot sed som visas här innehåller ett tabulatortecken efter 0 och efter 1.
sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE}> /tmp/state.$$ |