使用者帳戶控制

使用者帳戶具有可以變更的屬性。

每一位使用者帳戶都有一組相關的屬性。這些屬性是透過使用 mkuser 指令建立使用者時,從預設值建立。您可以使用 chuser 指令來改變屬性。下列使用者屬性控制登入功能,與密碼好壞無關:

account_locked
如果需要明確鎖定帳戶,可將該屬性設為 True,預設值為 False。
admin
如果設定為 True,該使用者將無法變更密碼。僅管理者可變更它。
admgroups
列出該使用者具備管理權利的群組。使用者可新增或刪除那些群組的成員。
auth1
用來授予使用者存取權的鑑別方法。通常是將它設定為 SYSTEM,這樣就可以使用較新的方法。
註: auth1 屬性即將棄用,不應使用它。
auth2
使用者被 auth1 中指定之任何項目鑑別之後的執行方法。它無法阻礙對系統的存取權。通常它是設為 NONE
註: auth2 屬性即將棄用,不應使用它。
daemon
該布林參數會指定使用者是否可使用 startsrc 指令來啟動常駐程式或子系統。此外也會限制使用 cron 及 at 機能。
login
指定該使用者是否可以登入。順利登入時,會從 loginsuccess 子常式將 unsuccessful_login_count 屬性的值重設為 0
logintimes
限制使用者登入時間。比方說,將使用者限制為只在一般營業時間才能存取系統。
registry
指定使用者登錄。這可以用來讓系統知道,使用者資訊存在於其他登錄,例如 NIS、LDAP 或 Kerberos。
rlogin
指定所指定的使用者是否可以使用 rlogintelnet 指令,來進行登入。rlogin 屬性只會控制遠端登入。如需控制個別遠端指令執行能力的相關資訊,請參閱 rcmds
su
可指定其他使用者是否可以利用 su 指令,切換到這個 ID。
sugroups
可指定哪些群組可以切換到這個使用者 ID。
ttys
可將某些帳戶限制在實際安全的區域當中。
expires
可管理學生或來賓帳戶;亦可暫時停用帳戶。
loginretries
可指定在系統鎖定使用者 ID 之前,連續失敗登入的次數上限。失敗次數會記錄在 /etc/security/lastlog 檔中。
umask
可指定使用者的起始 umask
rcmds
指定所指定的使用者是否可以使用 rsh 指令或 rexec 指令,來執行個別指令。值 allow 指出您可以使用 rshrexec 指令來遠端執行指令。值 deny 指出您無法遠端執行指令。值 hostlogincontrol 指出執行遠端指令是透過 hostallowedloginhostsdeniedlogin 屬性所控制。如需控制遠端登入的相關資訊,請參閱 rlogin 屬性。
hostallowedlogin
指定允許使用者登入的主機。多個主機共用使用者屬性的網路環境中,常用到這個屬性。
hostsdeniedlogin
指定不允許使用者登入的主機。多個主機共用使用者屬性的網路環境中,常用到這個屬性。
maxulogs
指定每一位使用者的登入次數上限。如果使用者的登入次數已達上限,就會拒絕其登入。

使用者屬性的完整設定是在這些檔案中定義:/etc/security/user/etc/security/limits/etc/security/audit/config/etc/security/lastlog。以 mkuser 指令建立使用者的預設設定,是在 /usr/lib/security/mkuser.default 檔中指定的。mkuser.default 只用來指定會置換 /etc/security/user/etc/securtiy/limits 檔預設段落中一般預設值的選項,以及審核類別。這些屬性有好幾個可以控制使用者登入的方式,您也可以配置它們,讓它們在指定狀況下,自動鎖定使用者帳戶 (以防止進一步登入)。

系統一旦因使用者登入失敗的次數超過上限而鎖定帳戶,使用者便無法登入,除非系統管理者將使用者在 /etc/security/lastlog 檔中的 unsuccessful_login_count 屬性,重設為小於登入重試值。您可以利用下述 chsec 指令完成:

chsec -f /etc/security/lastlog -s username -a
     unsuccessful_login_count=0

您可以使用 chsec 指令來變更預設值,即在適當的安全檔案中編輯預設段落,例如 /etc/security/user/etc/security/limits 檔案。許多預設值已定義為標準行為。若要明確指定每次建立新使用者時所設定的屬性,請變更 /usr/lib/security/mkuser.default 中的 user 項目。

如需擴充的使用者密碼屬性的資訊,請參考密碼

使用者屬性影響的登入相關指令

下表列出控制登入的屬性以及受影響的指令。
使用者屬性 指令
account_locked rexecrshrcpsshscprlogintelnetftplogin
login 只影響從主控台的登入。login 屬性的值不會影響遠端登入指令、遠端 shell 指令或遠端複製指令 (rexecrshrcpsshscprlogintelnetftp)。
logintimes rexecrshrcpsshscprlogintelnetftplogin
rlogin 只影響遠端登入指令、特定遠端 shell 指令,以及特定遠端複製指令 (sshscprlogintelnet)。
loginretries rexecrshrcpsshscprlogintelnetftplogin
/etc/nologin rexecrshrcpsshscprlogintelnetftplogin
rcmds=deny rexecrshrcpsshscp
rcmds=hostlogincontrol and hostsdeniedlogin=<target_hosts> rexecrshrcpsshscprlogintelnetftplogin
ttys = !REXEC, !RSH rexecrshrcpsshscprlogintelnetftplogin
ttys = !REXEC, !RSH, /dev/pts rexecrsh
ttys = !REXEC, !RSH, ALL rexecrsh
expires rexecrshrcpsshscprlogintelnetftplogin
註: rsh 只禁止執行遠端指令。仍允許遠端登入。