Solaris下的密码设定问题
今天在处理一个密码的问题,刚好找到之前所写的一点笔记,就写在这里以免下次找不到。
1.有没有指令可以把系统上所有使用者的密码都设定为「过期」(expire)?这样可以强迫所有使用者更换密码。
答:使用“passwd -f username”可以让一个使用者的密码过期,所以只要把/etc/passwd里的所有使用者抓出来执行这个程式就好了。比如说用这个指令可以产生一系列的指令awk -F: ‘{ printf(”passwd -f %s\n”, $1)}’ /etc/shadow ,挑出一些不需要更改密码的使用者,再执行剩下的指令就可以了。
2.能不能做这样的设定:记住使用者最近五次设定的密码,让使用者新设的密码不能和最近五次的密码重覆?
答:Solaris 10之后有新增这样的功能,修改/etc/default/passwd里的这个参数#HISTORY=0,把那个#去掉,再把0改成想要的数字就行了(注意:现在的密码有被计算在这个数字里面)。
而Solaris 9及之前的作业系统则是没有这样的功能。
3.能不能做这样的设定:使用者连续n次登入失败,就锁住(lock)这个帐号,暂停他的登入权限?
答:一样,在Solaris 10底下是可以的。要修改两个档案,一个是/etc/default/login里的#RETRIES=5,把#号去掉并且把5改成n (n最大只能到15);另一个档是/etc/security/policy .conf ,把#LOCK_AFTER_RETRIES=NO的#去掉,然后把NO改成YES就行了。
4.对于一个已经被锁住的帐号,能够解除锁定,并且还原之前的密码吗?
答:在Solaris 9或之前的作业系统一定不行,而在Solaris 10不一定,要看是因为什么原因被锁帐号。如果是因为上面第三点的理由被锁,或是被passwd -l username锁帐号的话,用passwd -u username的确能够解除锁定,并且还原之前的密码,那是因为之前的密码还被保留在/ etc/shadow里。但是如果因为某些原因,之前的密码没有保留在/etc/shadow里,那就真的没办法了。
5.使用者登入之后,能不能设定如果他多久没有动作,就自动将他登出?
答:有一些shell可以做到这件事,比如说csh或tcsh里有一个参数autologout ,将它设成60,就是说使用者60分钟没有动作的话就会被登出。
不过这个做法并不可靠,因为使用者可以自己拿掉这个参数。