Linux中的預設許可權與隱藏許可權(檔案 目錄)

2021-06-21 23:54:42 字數 3093 閱讀 3938

乙個檔案(或目錄)擁有若干個屬性,包括(r/w/x)等基本屬性,以及是否為目錄(d)與檔案(-)或連線檔案(l)等屬性。此外,linux還可以設定其他系統安全屬性,使用chattr來設定,以lsattr來檢視,最重要的是可以設定其不可修改的特性,即便是檔案的擁有者都不能進行修改。這個屬性相當重要,尤其是在安全機制方面(security)。

當建立乙個新的檔案或目錄時,它的預設屬性是與umask有關的。通常,umask就是指定當前使用者在建立檔案或目錄時的屬性預設值。那麼,如何獲知和設定umask呢?

檢視方式有兩種,一種是直接輸入umask,可以看到數字型別的許可權設定分數,一種是加入-s(symbolic)引數,救護以符號型別的方式顯示許可權。

在預設許可權的屬性上,目錄與檔案是不一樣的。由於我們不希望檔案具有可執行許可權,預設情況下,檔案是不具有可執行(x)許可權的。因此:

1. 若使用者建立的是「檔案」,則預設沒有可執行(x)許可權,及只有rw這兩個許可權,也就是最大為666,預設屬性:-rw-rw-rw-;

2. 若使用者建立的是「目錄」,則由於x與是否可以進入此目錄有關,因此預設所有許可權均開放,即777,預設屬性:drwxrwxrwx。

umask指定的是該預設值需要減掉的許可權。因為r/w/x分別是4/2/1,也就是說,當要去掉寫許可權時,就輸入2,要去掉讀許可權時,就輸入4,要去掉讀和寫的許可權時,就輸入6。所以,上圖中0022,就是group與others的屬性被去掉了2,那麼當使用者:

1. 建立檔案時:(-rw-rw-rw-) - (-----w--w-) è-rw-r--r--

2. 建立目錄時:(drwxrwxrwx) - (d----w--w-) èdrwxr-x-r-x

如果我們僅僅想取消group的w許可權,也就是說,我們希望編寫出來的檔案應該具有-rw-rw-r--許可權,所有,umask應該是002才對。直接在umask後面輸入002即可。

在預設情況下,root的umask會去掉比較多的屬性,root的umask預設是022,這是基於安全的考慮。一般身份使用者通常的umask為002,及保留同使用者組的寫入許可權。

檔案有隱藏屬性,隱藏屬性對系統有很大的幫助,尤其是系統安全性(security)方面。

這個屬性設定上,比較常見的是a與i的設定值,而且狠毒設定值必須要root才能設定。

這個命令很重要,尤其是在系統的安全性方面。由於這些屬性是隱藏的,所以需要用lsattr才能檢視。最重要的是+i屬性,它可以讓乙個檔案無法被更改。如果是登陸檔案,就更需要+a引數,使它可以增加但不能修改與刪除原有資料。

使用chattr設定後,可以使用lsattr來檢視隱藏屬性。

建立s與t許可權,是為了讓一般使用者在執行某些程式的時候,能夠暫時具有該程式擁有者的許可權。例如,賬號和密碼的存放檔案其實是/etc/passwd與/etc/shadow,它們的擁有者是root。在這個許可權中,僅有root可以強制寫入。乙個普通使用者webgod去更新自己的密碼時,使用的就是/usr/bin/passwd程式,卻可以更新成功,而/usr/bin/passwd的擁有者是root。那麼,就是說webgod這個普通使用者可以訪問/etc/shadow密碼檔案。???這既是因為有s許可權的幫助。當s許可權在user的x時(注意下圖的/usr/bin/passwd的相關屬性),此處是-rwsr-xr-x,稱為set uid,簡稱suid,這個uid表示user的id,而user表示這個程式(/usr/bin/passwd)的擁有者(root)。所以,當webgod使用者執行/sur/bin/passwd時,他就暫時獲取檔案擁有者root的許可權。

注:suid僅可用在二進位制檔案(binary file),而且對目錄無效。

如果s的許可權是在使用者組,那麼就是set gid,簡稱sgid。sgid可以用在兩個方面:

1  檔案:如果sgid設定在二進位制檔案上,無論使用者是誰,在執行該程式的時候,它的有效使用者組將會變成該程式的使用者組所有者;

2  目錄:如果sgid是設定在a目錄上,則在該a目錄內所建立的檔案或目錄的使用者組,將會是此a目錄的使用者組。

sbit一般用於目錄上,對檔案的意義不大。sbit對目錄的作用是:在具有sbit的目錄下,使用者若在該目錄下具有w及x許可權,則當使用者在該目錄下建立檔案或目錄時,只有檔案擁有者與root才有權利刪除。sbit可以理解為防刪除位。如果希望使用者能夠新增檔案但同時不能刪除檔案,則可以對檔案使用sbit位。設定該位後,就算使用者對該檔案的父目錄具有寫許可權,也不能刪除檔案。

使用數字更改許可權的方式為「3個數字」的組合,那麼,如果在這3個數字之前加上乙個數字,最前面的數字就表示這個幾個屬性的組合:4為suid,2為sgid,1為sticky bit。

系統規定,如果本來在該位上有x,則這些特殊標誌便是為小寫字母(s/s/t),否則,顯示為大寫字母(s/s/t)。

Linux之檔案與目錄的預設許可權與隱藏許可權

指定目前使用者在建立檔案或目錄時候的預設許可權值 語法 umask 這裡的數字是值該預設值需要減掉的許可權,root的umask預設是022,一般使用者的umask為002。以符號的顯示方式顯示出許可權 語法 umask s 當使用者建立檔案則預設沒有可執行 x 許可權,即只有rw許可權,也就是66...

檔案許可權之預設許可權與隱藏許可權2

檔案的預設許可權 umask umask 0022 後面三個是一般許可權 umask s u rwx,g rx,o rx 目錄的預設許可權 1.檔案預設不給執行 x 許可權,最大666 rw rw rw 2.目錄預設給x許可權,最大777 rwxrwxrwx 3.uamsk分數值指的是,該預設值需要...

linux中的隱藏許可權,chattr,lsattr

chattr可以用來制約root的許可權,使得系統更加安全。主要引數 a 讓檔案或目錄僅供附加用途。b 不更新檔案或目錄的最後訪問時間。c 將檔案或目錄壓縮後存放。d 將檔案或目錄排除在傾倒操作之外。i 不得任意更動檔案或目錄。s 保密性刪除檔案或目錄。s 即時更新檔案或目錄。u 預防意外刪除。用法...