在Linux系統中,umask
和 ulimit
是兩個不同的命令,它們分別用於設定不同的系統屬性:
1. umask(使用者檔案建立掩碼)
umask
(user file creation mask)是一個命令,用於設定新建立檔案和目錄的預設許可權。umask
定義了檔案系統建立檔案和目錄時預設應該遮蔽掉的許可權位。
- 用途:控制新建立的檔案和目錄的預設許可權。
- 工作原理:
umask
設定了一個掩碼,這個掩碼告訴系統在建立檔案或目錄時應該預設去掉哪些許可權位。通常,這個掩碼是一個三位八進位制數,分別對應所有者(owner)、組(group)和其他(others)的許可權。 - 示例:如果設定
umask 022
,那麼新建立的檔案預設許可權將是644(即rw-r--r--
),新建立的目錄預設許可權將是755(即rwxr-xr-x
)。這是因為預設許可權是666(檔案)或777(目錄),去掉umask
指定的位(在本例中是其他使用者的寫許可權)。
2. ulimit(使用者限制)
ulimit
是一個命令,用於控制shell啟動程序的資源限制。這些限制可以是CPU時間、記憶體大小、程序數量等。
- 用途:限制程序可以使用的系統資源。
- 工作原理:
ulimit
設定了程序可以使用的資源的上限,包括但不限於:core
:核心檔案的大小(已棄用,通常設定為0)。data
:為程序的資料段分配的最大空間。fsize
:檔案大小的最大值。memlock
:鎖定在記憶體中的最大位元組數。nofile
:程序可以開啟的最大檔案描述符數。stack
:程序的棧空間大小。cpu
:CPU時間的最大值。
- 示例:使用
ulimit -n 64
可以設定一個程序可以開啟的最大檔案描述符數為64。
3. 區別
- 作用範圍:
umask
主要影響檔案和目錄的許可權設定,而ulimit
影響程序可以使用的系統資源。 - 預設行為:
umask
定義了檔案系統建立檔案和目錄時的預設許可權,ulimit
定義了程序可以使用的資源的最大限制。 - 使用場景:
umask
通常在使用者的shell配置檔案中設定,以定義使用者建立檔案和目錄時的預設許可權;ulimit
可以在命令列中臨時設定,或在使用者的shell配置檔案中設定,以限制使用者程序可以使用的資源。
綜上所述,umask
和 ulimit
都是用於系統管理的重要工具,但它們控制的是完全不同的方面。