Installationsguide för Solaris 9

Ställa in systemets rotlösenord med ett slutskript

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 24–5.


Exempel 24–5 Så här ställer du in systemets rotlösenord med ett slutskript

	 #!/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 indatafil1
 cp /a/etc/shadow /a/etc/shadow.orig2
 
	 mv /a/etc/shadow /a/etc/shadow.orig
 	nawk -F: '{
         if ( $1 == "root" )3
           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.orig4
 # ange flaggan, så att sysidroot inte ber om rotlösenordet
 sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE}> /tmp/state.$$5
  mv /tmp/state.$$ ${SI_SYS_STATE}
  1. Ställer in variabeln PASSWD till ett krypterat rotlösenord, som hämtas från en befintlig post i ett systems /etc/shadow-fil.

  2. Skapar en temporär indatafil av /a/etc/shadow.

  3. Ändrar rotposten i filen /etc/shadow för det nyinstallerade systemet med $PASSWD som lösenordsfält.

  4. Tar bort den temporära filen /a/etc/shadow.

  5. Ändrar posten från 0 till 1 i statusfilen, 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.



Obs!  

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.