今天在處理一個密碼的問題,剛好找到之前所寫的一點筆記,就寫在這裡以免下次找不到。
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)這個帳號,暫停他的登入權限?
4.對於一個已經被鎖住的帳號,能夠解除鎖定,並且還原之前的密碼嗎?
答:在Solaris 9或之前的作業系統一定不行,而在Solaris 10不一定,要看是因為什麼原因被鎖帳號。如果是因為上面第三點的理由被鎖,或是被passwd -l username鎖帳號的話,用passwd -u username的確能夠解除鎖定,並且還原之前的密碼,那是因為之前的密碼還被保留在/ etc/shadow裡。但是如果因為某些原因,之前的密碼沒有保留在/etc/shadow裡,那就真的沒辦法了。
5.使用者登入之後,能不能設定如果他多久沒有動作,就自動將他登出?
答:有一些shell可以做到這件事,比如說csh或tcsh裡有一個參數autologout ,將它設成60,就是說使用者60分鐘沒有動作的話就會被登出。
不過這個做法並不可靠,因為使用者可以自己拿掉這個參數。