萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux文件默認權限與隱藏權限解析

Linux文件默認權限與隱藏權限解析

  Linux系統文件包括文件夾都會有一些權限,這些Linux權限包括默認權限和隱藏權限,本文就來解析一下Linux系統文件的默認權限和隱藏權限。

Linux文件默認權限與隱藏權限解析

  文件默認權限:umask

  [root@www ~]# umask

  0022 《==與一般權限有關的是後面三個數字!

  [root@www ~]# umask -S

  u=rwx,g=rx,o=rx

  默認的情況如下:

  若使用者創建為『文件』則默認『沒有可運行( x )權限』,亦即只有 rw 這兩個項目,也就是最大為 666 分,默認權限如下:

  -rw-rw-rw-

  若使用者創建為『目錄』,則由於 x 與是否可以進入此目錄有關,因此默認為所有權限均開放,亦即為 777 分,默認權限如下:

  drwxrwxrwx

  [root@www ~]# umask

  0022

  [root@www ~]# touch test1

  [root@www ~]# mkdir test2

  [root@www ~]# ll

  -rw-r--r-- 1 root root 0 Sep 27 00:25 test1

  drwxr-xr-x 2 root root 4096 Sep 27 00:25 test2

  umask的利用與重要性

  [root@www ~]# umask 002

  [root@www ~]# touch test3

  [root@www ~]# mkdir test4

  [root@www ~]# ll

  -rw-rw-r-- 1 root root 0 Sep 27 00:36 test3

  drwxrwxr-x 2 root root 4096 Sep 27 00:36 test4

  在默認的情況中, root 的 umask 會拿掉比較多的屬性,root 的 umask 默認是 022 , 這是基於安全的考量啦~至於一般身份使用者,通常他們的 umask 為 002 ,亦即保留同群組的寫入權力! 上一頁123下一頁共3頁

  chattr (配置文件隱藏屬性)

  [root@www ~]# chattr [+-=][ASacdistu] 文件或目錄名稱

  選項與參數:

  + :添加某一個特殊參數,其他原本存在參數則不動。

  - :移除某一個特殊參數,其他原本存在參數則不動。

  = :配置一定,且僅有後面接的參數

  A :當配置了 A 這個屬性時,若你有存取此文件(或目錄)時,他的存取時間 atime

  將不會被修改,可避免I/O較慢的機器過度的存取磁碟。這對速度較慢的計算機有幫助

  S :一般文件是非同步寫入磁碟的(原理請參考第五章sync的說明),如果加上 S 這個

  屬性時,當你進行任何文件的修改,該更動會『同步』寫入磁碟中。

  a :當配置 a 之後,這個文件將只能添加數據,而不能刪除也不能修改數據,只有root

  才能配置這個屬性。

  c :這個屬性配置之後,將會自動的將此文件『壓縮』,在讀取的時候將會自動解壓縮,

  但是在儲存的時候,將會先進行壓縮後再儲存(看來對於大文件似乎蠻有用的!)

  d :當 dump 程序被運行的時候,配置 d 屬性將可使該文件(或目錄)不會被 dump 備份

  i :這個 i 可就很厲害了!他可以讓一個文件『不能被刪除、改名、配置連結也無法

  寫入或新增數據!』對於系統安全性有相當大的助益!只有 root 能配置此屬性

  s :當文件配置了 s 屬性時,如果這個文件被刪除,他將會被完全的移除出這個硬盤

  空間,所以如果誤刪了,完全無法救回來了喔!

  u :與 s 相反的,當使用 u 來配置文件時,如果該文件被刪除了,則數據內容其實還

  存在磁碟中,可以使用來救援該文件喔!

  注意:屬性配置常見的是 a 與 i 的配置值,而且很多配置值必須要身為 root 才能配置

  范例:請嘗試到/tmp底下創建文件,並加入 i 的參數,嘗試刪除看看。

  [root@www ~]# cd /tmp

  [root@www tmp]# touch attrtest 《==創建一個空文件

  [root@www tmp]# chattr +i attrtest 《==給予 i 的屬性

  [root@www tmp]# rm attrtest 《==嘗試刪除看看

  rm: remove write-protected regular empty file `attrtest‘? y

  rm: cannot remove `attrtest’: Operation not permitted 《==操作不許可

  # 看到了嗎?呼呼!連 root 也沒有辦法將這個文件刪除呢!趕緊解除配置!

  范例:請將該文件的 i 屬性取消!

  [root@www tmp]# chattr -i attrtest

  lsattr (顯示文件隱藏屬性)

  [root@www ~]# lsattr [-adR] 文件或目錄

  選項與參數:

  -a :將隱藏檔的屬性也秀出來;

  -d :如果接的是目錄,僅列出目錄本身的屬性而非目錄內的檔名;

  -R :連同子目錄的數據也一並列出來!

  [root@www tmp]# chattr +aij attrtest

  [root@www tmp]# lsattr attrtest

  ----ia---j--- attrtest 上一頁12 3下一頁共3頁

  Set UID

  基本上SUID有這樣的限制與功能:

  SUID 權限僅對二進位程序(binary program)有效;

  運行者對於該程序需要具有 x 的可運行權限;

  本權限僅在運行該程序的過程中有效 (run-time);

  運行者將具有該程序擁有者 (owner) 的權限。

  Set GID

  與 SUID 不同的是,SGID 可以針對文件或目錄來配置!如果是對文件來說, SGID 有如下的功能:

  SGID 對二進位程序有用;

  程序運行者對於該程序來說,需具備 x 的權限;

  運行者在運行的過程中將會獲得該程序群組的支持!

  當一個目錄配置了 SGID 的權限後,他將具有如下的功能:

  使用者若對於此目錄具有 r 與 x 的權限時,該使用者能夠進入此目錄;

  使用者在此目錄下的有效群組(effective group)將會變成該目錄的群組;

  用途:若使用者在此目錄下具有 w 的權限(可以新建文件),則使用者所創建的新文件,該新文件的群組與此目錄的群組相同。

  SUID/SGID/SBIT 權限配置

  [root@www ~]# cd /tmp

  [root@www tmp]# touch test 《==創建一個測試用空檔

  [root@www tmp]# chmod 4755 test; ls -l test 《==加入具有 SUID 的權限

  -rwsr-xr-x 1 root root 0 Sep 29 03:06 test

  [root@www tmp]# chmod 6755 test; ls -l test 《==加入具有 SUID/SGID 的權限

  -rwsr-sr-x 1 root root 0 Sep 29 03:06 test

  [root@www tmp]# chmod 1755 test; ls -l test 《==加入 SBIT 的功能!

  -rwxr-xr-t 1 root root 0 Sep 29 03:06 test

  [root@www tmp]# chmod 7666 test; ls -l test 《==具有空的 SUID/SGID 權限

  -rwSrwSrwT 1 root root 0 Sep 29 03:06 test # 配置權限成為 -rws--x--x 的模樣:

  [root@www tmp]# chmod u=rwxs,go=x test; ls -l test

  -rws--x--x 1 root root 0 Aug 18 23:47 test

  # 承上,加上 SGID 與 SBIT 在上述的文件權限中!

  [root@www tmp]# chmod g+s,o+t test; ls -l test

  -rws--s--t 1 root root 0 Aug 18 23:47 test

  以上就是Linux文件默認權限和隱藏權限的解析了,只有掌握了Linux文件權限,才能更好地使用Linux系統。

上一頁123 下一頁共3頁
copyright © 萬盛學電腦網 all rights reserved