通过login.conf对帐号进行限制

来源:互联网 发布:如何查询数据库地址吗 编辑:程序博客网 时间:2024/05/10 18:23

以下為 /etc/login.conf 中關於 default class 的設定:

# defaults# These settings are used by login(1) by default for classless users# Note that entries like "cputime" set both "cputime-cur" and "cputime-max"default:/:passwd_format=md5:/:copyright=/etc/COPYRIGHT:/:welcome=/etc/motd:/:setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:/:path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin:nologin=/var/run/nologin:/:cputime=unlimited:/:datasize=unlimited:/:stacksize=unlimited:/:memorylocked=unlimited:/:memoryuse=unlimited:/:filesize=unlimited:/:coredumpsize=unlimited:/:openfiles=unlimited:/:maxproc=unlimited:/:sbsize=unlimited:/:vmemoryuse=unlimited:/:priority=0:/:ignoretime@:/:umask=022:

以下為關於系統資源限制的欄位說明,每一個欄位都有可使用的數值類型,例如 size、time 等,讓我們來看看每個欄位的說明:

欄位名稱 數值類型 說明 coredumpsize Size 當使用者所執行的程式出了問題 (coredump),系統會將該程式的執行狀況從記憶體中寫到硬碟上,這個值就是在限制 core file 的檔案大小。如果使用者所執行的程式是需要消耗許多記憶體的程式,則所產生的 core file 也會很大。這個值不應該比使用者的磁碟配額限制大。 cputime Time 這是一個行程所能使用的最長 CPU 時間,這個時間指的不是我們在 top 或 ps 中看到的 CPU usage 百分比,而是一個行程所使用的 CPU 時間。當超過時間,系統核心會自動停止該行程。 filesize Size 使用者單一檔案的最大容量。我們對於使用者磁碟配額只能限制使用者對於硬碟的使用總額,而這個設定可以限制單一檔案的大小。 maxproc Number 限制使用者最多可以執行的行程總量。這個限制包含所有以該使用者名稱所執行的程式,有的程式在執行時,會自動產生許多子行程,如果這個值設定的太小,可能會造成使用者的困擾。 memorylocked Size FreeBSD 系統中有所謂的虛擬記憶體空間,當實體記憶體不足時,系統會將某部份的記憶體資料放到虛擬記憶體中。而有的程式會使用 mlock() 這個系統呼叫要求系統將它所佔用的記憶體空間全部放在實體記憶體中,memorylocked 就是限制使用 mlock() 的記憶體大小。 memoryuse Size 限制行程最大的記憶體使用量,包含實體記憶體及虛擬記憶體。 openfiles Number 限制使用者同一時間最多可以開啟的檔案數量。所謂的檔案數量包含了一般的檔案及 socket。 sbsize Size 用以限制最大的網路緩衝區的使用量。 stacksize Size 行程可使用的最大堆疊 (stack) 空間。

以下為上表中數值類型的說明:

類型 說明 Size 我們可以單純的以數字來表示 Size,預設的單位是 byte。例如 1234 表示 1234 bytes。除此之外,我們也可以在數字之後加上單位。例如:
    b: 表示 512-byte block (1b = 512bytes)。    k: 表示 kilobytes,即 KB (1k=1024 bytes)。    m: 表示 megabytes,即 MB (1m=1048576 bytes)。    g: 表示 gigabytes,即 GB。    t: 表示 terabytes,即 TB。
Time 當我們只寫數字時,預設的單位是秒。或者我們也可以在數字後加上單位 y (年)、w (週)、d (天)、h (時)、m (分)、s (秒)。

例如,三小時四十分可以表示為:13200s、220m、或是 3h40m。

Number 您可以使用 0 到 9 的數字,預設為十進位。您也可以使用開頭為 0x 的數字來表示十六進位。

當要修改類別時,我們以將 default class 複製一份,並更名為其他類別,最後再進行編輯。類別新增完畢後,我們必須執行下列指令以重建系統資料庫。

# cap_mkdb /etc/login.conf

接下來我們就可以執行 vipw 在想要限制的使用者的 class 的欄位填入我們新增的類別了。

除了限制系統資源的使用外,我們也可以使用 login.conf 來客制化每個使用者的登入環境、所使用的語言等,請 man login.conf 以得到更多的說明。

 
原创粉丝点击