FreeBSD連載(13):超級用戶root、登錄類別
王波
超級用戶是Unix的所有者,擁有所有的權利,因此也具有很大的危險性,不當使用超級用戶權力能對系統造成不
可挽回的破壞。即使對于個人使用的FreeBSD系統,盡管不需要將系統與其他人共享,但是仍然不要使用root用戶
作日常處理工作。通常管理員在正常情況下僅僅使用普通帳戶進行操作,只有在執行系統管理的必要時候才使用超級用戶權限
。
從普通用戶成為超級用戶的標准方法是使用su命令:
$ su
Password:
#
正確輸入root的口令之后,就成為了超級用戶,系統提示符也從標准的 “$” 變為root專用的 “#”
提示。
在FreeBSD上要使用su命令成為root用戶,不但要知道root的口令,還需要經過特別設置,否則就
不能成功使用這個命令。這是因為FreeBSD對執行su命令的用戶進行了更嚴格的限制,能使用su命令的用戶必須屬
于wheel組(root的基本屬組,組ID為0),否則就不能通過這個命令成為root用戶。因此需要編輯組設置文
件/etc/group,將需要超級用戶權力的管理成員加入到wheel組中。
如果僅僅要用戶執行部分需要超級用戶權力的操作,而不想將root的口令泄露出去,更簡單的做法是使用sudo
,然而這屬于基本系統之外,需要另外安裝的管理工具。
從 4.3 BSD Net/2開始,BSD Unix引入了登錄類別這種分類機制來管理用戶使用的資源、記
賬和環境設置。FreeBSD系統使用/etc/login.conf中描述的數據來將用戶按照登錄環境、強制性的資
源限制以及記賬管理等分為不同的登錄類別,每個用戶的登錄類別記錄在/etc/master.passwd中的該用戶
的設置中。
default:\
:cputime=infinity:\
:datasize-cur=64M:\
:stacksize-cur=64M:\
:memorylocked-cur=10M:\
:memoryuse-cur=100M:\
:filesize=infinity:\
:coredumpsize=infinity:\
:maxproc-cur=64:\
:openfiles-cur=64:\
:priority=0:\
:requirehome@:\
:umask=022:\
:tc=auth-defaults:
上面設置了default登錄類別中的几個參數,如果沒有在master.passwd文件中明確指定用戶的
登錄類別,就使用這個缺省類別來作為用戶的登錄類別。
cputime設置了用戶的每個進程可以使用的CPU時間,缺省是無限制(infinity)。如果加以限制
,有些需要大量CPU時間進行運算的進程就不能正常執行到結束。
datasize-cur設置了用戶使用的數據段最大為64M,但-cur設置不是強制的,用戶實際使用的數
據有可能超過這個值,但最大不能超過datasize-max設置的值(缺省沒有設置)。如果沒有-cur和-max
后綴,僅僅定義datasize,則表示datasize-cur和datasize-max同樣都為datasize
設置的值。同樣stacksize定義了對棧的限制。
memorylocked-cur設置了用戶每進程可以鎖定的最大內存。
memoryuse-cur設置了每進程使用的最大內存。
filesize-cur設置了用戶產生的文件大小。
coredumpsize設置了在應用程序發生問題時產生的core dump文件的大小。
maxproc-cur設置了用戶可以同時執行的最大進程數。
openfiles-cur設置了每進程最多打開的文件數。
priority設置用戶進程的優先級。
requirehome設置用戶登錄時是否需要主目錄,@符號表示不需要主目錄。
umask項設置缺省的umask,用于用戶創建文件的屬性。
tc設置系統認証策略為使用缺省的認証策略。
如果要創建新類別,并不需要對每個值都重新設置,系統缺省先應用default類別的設置,然后再應用具體類
別的設置,因此只需要設置與default類別不同的項就可以了。
users:\
:manpath=/usr/share/man /usr/X11R6/man /usr/local/man:\
:cputime=4h:\
:openfiles=32:\
:maxproc=48:\
:tc=default:
上面是設置了一個新類users,可以看出它為用戶設置了環境變量MANPATH,并重置了cputtime
、openfile、maxproc和tc的值。每次更改login.conf之后,都要進行更新登錄類別數據庫的操
作。
# cap_mkdb /etc/login.conf
由于登錄類別保存在master.passwd文件中,通常在使用adduser添加用戶的時候設置用戶的登
錄類別。如果要進行更改,必須使用vipw來修改/etc/master.passwd文件的第5個域。下面為master.passwd
中的一行,該行指定這個用戶的登錄類別為user:
wb:FPRKMMNuZ3Pfk:1001:1001:users:0:0:Wang Bo:/home/wb:/bin/sh
未完,待續。。。
|