在DOS和WINDOWS98系统中设置启动密码已经有很多方法和现成的软件可用了,但是,在UNIX系统中,有没有一种方法可以设置启动密码呢?下面我自编了一个SHELL小程序,可以实现在系统启动过程中加以密码限制,即使启动了机器,在输入密码之前,也不能使系统出现LOGIN的提示符。 这个小程序是加载在/etc/rc2文件中的,rc2文件是unix系统在启动过程中调用的一个shell文件,我们在最后加入如下内容,就可实现启动密码的限制了。程序如下: 在/etc/rc2文件中寻找下面这句话 if [ "${BOOT}" = "yes" -a "$7" = "2" ] then # dspmsg $MF_RC -s $MS_RC2 $RC2_READY 'The System is Ready ! \n' 找到后 屏蔽上面这句话,之后加入下面这个程序: # 循环开始 while true do clear setcolor -b black -k lt_red echo '\033[09;18H 系' setcolor -b black -k lt_cyan echo '\033[09;25H 统' setcolor -b black -k lt_magenta echo '\033[09;32H 启' setcolor -b black -k hi_white echo '\033[09;39H 动' setcolor -b black -k yellow echo '\033[09;46H 完' setcolor -b black -k lt_green echo '\033[09;53H 毕' setcolor -b black -k white echo '\n\n\n\n\n\n\n\n\n\n\n\n\n' echo ' ┏━━━━━━━━━━━━━━━━━┓' echo ' ┃ 欢 迎 您 使 用 UNIX ┃' echo ' ┗━━━━━━━━━━━━━━━━━┛' echo "\033[17;15H 请输入密码:[****] " setcolor -b black -k black echo "\033[17;42H\c" read ch setcolor -b black -k white # 在上面的两个setcolor语句中,可以使键入的密码不回显 case $ch in # 以下括号内为启动密码 2015) setcolor -b black -k lt_green echo " " echo " " echo "密码正确,请使用本系统." setcolor -b black -k white break ;; *) echo "\007" echo "\033[20;1H" setcolor -b black -k lt_red echo "\007\t\t\t 密码错误!!!,请重新输入\c" setcolor -b black -k white read s ;; esac done # 循环结束 elif [ "$7" = "2" ] then dspmsg $MF_RC -s $MS_RC2 $RC2_COMPLETE 'Change to state 2 has been completed.\n' fi 如果在while循环中,每一条setcolor语句下面加如sleep 1(延迟1秒),更能获得动态的效果!
(出处:http://www.sheup.com)