Solaris 소프트웨어가 시스템에 설치된 뒤 시스템은 재부트됩니다. 부트 프로세스가 끝나기 전에 시스템은 루트 암호 입력을 요청합니다. 암호를 입력하기 전에는 시스템은 부트를 마칠 수 없습니다.
set_root_pw라는 이름의 종료 스크립트는 auto_install_sample 디렉토리에 저장됩니다. 종료 스크립트는 루트 암호 입력 요청을 받지 않고 자동으로 설정하는 방법을 보여줍니다. set_root_pw는 예 24–4에 표시되어 있습니다.
#!/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 file1 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 #remove the temporary file rm -f /a/etc/shadow.orig4 # set the flag so sysidroot won't prompt for the root password sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE}> /tmp/state.$$5 mv /tmp/state.$$ ${SI_SYS_STATE} |
변수 PASSWD를 시스템의 /etc/shadow 파일에 있는 기존 입력 항목에서 얻어진 암호화된 루트 암호로 설정하십시오.
/a/etc/shadow의 임시 입력 파일을 작성하십시오.
$PASSWD를 암호 필드로 사용하는 새로 설치된 시스템의 /etc/shadow 파일의 루트 입력 항목을 변경하십시오.
임시 /a/etc/shadow 파일을 제거하십시오.
상태 파일의 입력 항목을 0에서 1로 변경하여 사용자에게 루트 암호 입력 요청을 하지 않도록 하십시오. 상태 파일은 현재 값이 /a/etc/.sysIDtool.state인 변수 SI_SYS_STATE를 사용하여 액세스합니다. 스크립트 문제를 방지하려면 값이 변경되는 경우 항상 $SI_SYS_STATE를 사용하여 이 파일을 참조하십시오. 여기에 보이는 sed 명령은 0 뒤와 1 뒤에 탭 문자가 포함되어 있습니다.
종료 스크립트를 사용하여 시스템의 루트 암호를 설정하면 사용자는 종료 스크립트의 암호화된 암호로부터 루트 암호를 찾아내려고 시도할 것입니다. 루트 암호를 파악하려고 시도하는 사용자에 대비한 보호 조치를 취해야 합니다.