linux文件基本權限、默認權限、隱藏權限和ACL權限

基本權限

   文件屬性rwx

    每個文件當用ls -l查看時,都會顯示文件的詳細屬性信息,其中在排在首位的共有10位字符信息

    例如 -rw-r–rw-. 1 root root ……..

共有10位,第一位代表的是文件的類型,后邊9位表示的是文件的權限屬性,沒3個字符為一組,從左到右,依次表示owner,group,others的權限,其中每組3個字符中又對應三種狀態,分別是rwx。后邊的依次是連接數,所有者,所屬組,

    1、權限對文件意義

    r  read,表示可讀取文件的實際內容

    w  write,可以編輯、新增或者修改文件的內容,但是不包括刪除該文件

    x  eXecute,表示該文件具有被系統執行的權限。在linux中,我們的文件能否被執行,是有x這個權限來決定的,而跟文件名沒有絕對的關系

    notice:當我們對一個文件有w權限是,我沒只能對文件內容進行改動,而對文件本身是不具備刪除權限的。對于文件的rwx來說,主要都是針對的文件內容,與文件名的存在有否沒有關系。

   2、權限對目錄的意義

    文件是存放實際數據的所在,目錄的主要內容是記錄文件名列表,文件名與目錄有強烈的關聯

    r: read content in directory

        表示具有讀出目錄結構列表的權限,所以當對一個目錄具有r的權限的時候,表示我們可以查詢該目錄下的文件名的數據,所以可以使用ls命令將目錄的內容列表顯示出來

    w:modify contents of directory 表示具有更改目錄結構列表的權限

    x:access directory

    目錄的x權限代表的是用戶能否進入到該目錄成為工作目錄的用途。如果對一個目錄不具備x權限,那么就無法切換到該目錄下,也就無法執行該目錄下的任何命令

     要開放目錄的權限給別人時,應該至少要給r和x的權限,但是w的權限不能隨便給,因為給予w權限,就具備了對目錄中文件和目錄的一系列的刪除、新建、重命名等操作。

文件普通權限與屬性的修改

    chown   change owner 改變所有者

    chgrp   change group 改變所屬組

    chmod   change mode 改變文件的權限

  chown [-R] [owner][:[group]] File

    用法 owner  或者 owner:  相當于 owner:owner  或者:group 

    -R 表示遞歸,連同子目錄下的所有文件和目錄

     chown [-R] –reference=file1 file2

    將file2的權限修改成與file1的相同 

 chgrp [-R] [group] file 

    chgrp [-R] –reference=file1 file2

    將file2的用戶組改成與file1相同

 chmod 更改文件的權限

     更改文件的權限有兩種方法    

    1、數字類型改變文件權限

   r對應數值4,w對應2,x對應1,-對應0,相應的權限位置有則計算,沒有計為0,沒三個相加,得到數字就是最后的權限數,例如某個文件的權限:-rwxrw-r–,對應的數字就是421420400,最后的數字就是764

    chmod 764 file

    2、符號類型修改文件權限

   修改一類用戶的所有權限:u=[rwx] g=[rwx] o=[rwx] ug=[rwx] a=[rwx] u=,g=

   修改用戶的某些權限或某一位權限:u+  u-g+  g-o+  o-a+  a- + –

 chmod [-R] –reference=file1 file2   參考file1的文件權限,將file2修改為與file1相同

新建文件和目錄的默認權限

   當我們新創建一個目錄或者文件時都是有權限的,那他的默認權限是怎么來的?這就與umask有關了,umask是用戶在新建文件或目錄時的權限默認值。系統默認的umask=0022,其中,一般用戶在創建時取用后三位022,系統用戶在創建時取用前三位002,并且umask的值是可以查看和設定的,直接輸入umask 即為查看,輸入umask #即為設定,并且可以用 umask -S 來以模式的方式產看,umask -p 顯示的umask值可以被調用

   新建文件的權限=最高權限-umask,新建文件的最高權限為666,新建目錄的最高權限為777。

   由于umask的值可以在新建文件時重新設定,所以當得到的文件權限存在可執行(奇數)位時,就在對應的權限數值上+1,例如 umask=035,得到的文件權限為631,則最后的權限應該是642

   umask值其實就是在新建文件或目錄時從做大權限中拿掉的權限。

 

文件系統的特殊權限SUID、SGID、Stick

進程有屬主和屬組;文件有屬主和屬組

   (1) 任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限

   (2) 啟動為進程之后,其進程的屬主為發起者;進程的屬組為發起者所屬的組

   (3) 進程訪問文件時的權限,取決于進程的發起者

    (a) 進程的發起者,同文件的屬主:則應用文件屬主權限

    (b) 進程的發起者,屬于文件屬組;則應用文件屬組權限

    (c) 應用文件“其它”權限

SUID

   任何一個可執行程序文件能不能啟動為進程:取決于發起者對程序文件是否擁有執行權限,啟動為進進程之后,其進程的屬主為源文件的屬主。SUID就是讓普通用戶擁有可以執行“只有root權限才能執行”的特殊權限

   SUID的限制與功能

  1、SUID權限僅對二進制(binary program)程序有效,設置在目錄上無意義

  2、執行者需要對于該程序有x的可執行權限

  3、本權限只在執行改程序的過程中有效

  4、執行者將具有該程序所有者的權限

   權限設定  chmod u+s file…   chmod u-s file…

SGID

   可執行(具有x權限)文件上的SGID權限

    任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有執行權限。啟動為進程之后,其進程的屬主為原程序文件的屬組

   權限設定:chmod g+s file…   chmod g-s file…

  可執行目錄上的SGID權限

    默認情況下,用戶創建文件時,其屬組為此用戶所屬組的主組

   一旦某目錄被設定SGID,則對此目錄有寫權限的用戶,在此目錄中創建的文件,所屬的組為此目錄的屬組

    通常用于創建一個協作的目錄

    權限設定:chmod g+s dir…   chmod g-s dir…

Sticky位(粘滯位)

  具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,無論該文件的權限或擁有權

   在目錄設置Sticky 位,只有文件的所有者或root可以刪除該文件

   sticky設置在文件上沒有意義

   權限設定:chmod o+t dir…  chmod o-t dir…

當設定對應的SUID SGID和Sticky時,如果對應的屬主、屬組和other沒有相應的x權限,那么特殊權限會由s s t變成,S S T

   特殊權限的數字發設定

    SUID=4,SGID=2,Sticky=1,將含有對應權限累加,得到數值后,放到普通權限三個數值的前面,即可用chmod命令設定

文件的隱藏屬性chattr lsattr

   文件除了上邊介紹的屬性之外還具有隱藏的屬性,用命令chattr來修改,用lsattr來查看

    chattr [+-=][ASacdistu] 文件或目錄名稱

選項   -R  遞歸,將目錄中的內容依次改變

參數

    +  增加某一個特殊參數,其他參數不改變

    –  刪除某一個特殊參數,其他參數不改變

    =  設定為后邊的參數

    A  當設置了A后,當訪問這個文件時,文件的atime不會改變,對于I/O較慢的機器可以避免過度訪問磁盤

    a  當設置a屬性之后,這個文件將只能增加數據,不能修改和刪除數據,只有root能設置這個屬性

    c  文件設置c屬性之后,將會自動將此文件壓縮,讀取時自動解壓縮;進行存儲的時候,會先進行壓縮在存儲

    i  設置i屬性之后,這個文件將不能被刪除、改名,設置連接也無法寫入或添加數據,只有root能夠設置

    s  當設置s屬性后,文件被刪除之后,將會完全從磁盤被刪除,包括文件的具體數據

    u  與s屬性相對應的,當文件設置u屬性之后,如果文件被刪除,將只會刪除文件的文件名,內部的具體數據依舊會存在磁盤上,可以恢復

 

lsattr  查看文件的隱藏屬性

    lsattr [-adR] 文件或目錄

選項與參數:

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

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

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

主機的具體權限規劃:ACL

   ACl是access control list的縮寫,主要目的是提供傳統的owner、group、others的r、w、x權限之外的具體權限設置。ACl可針對單一用戶、單一文件或目錄來進行rwx的權限設置,對于需要特殊權限的使用狀況非常有幫助

    CentOS7.0默認創建的xfs和ext4文件系統有ACL功能。CentOS7.X之前版本,默認手工創建的ext4文件系統無ACL功能。需手動增加:

            tune2fs –o acl/dev/sdb1

            mount –o acl/dev/sdb1 /mnt

ACL的生效順序:所有者,自定義用戶,自定義組,其他人

    設置文件的ACL權限  使用setfacl命令

  選項:

   m 設置文件的acl參數,不能與-x混用

     -x 刪除文件的acl參數,不能與-m混用

    -b 清空文件所有的acl參數

    -k 移除『預設的』 ACL 參數,關于所謂的『預設』參數于后續范例中介紹;

    -R 遞歸設定 acl ,亦即包括次目錄都會被設定起來

    -d 設定『預設 acl 參數』的意思!只對目錄有效,在該目錄新建的數據會引用此默認值

    -M 調用設置好的ACL權限設置文件  setfacl -M file.acl file|directory

  設置方式   setfacl -m[R] u[g]:username[groupname]:[rwx權限] file[dir]

  取消方式  setfacl -x[-R] u[g]:username[groupname] file[dir] 

    這種取消方式可能不徹底,可以使用-b選項全部取消

    setfacl -m d:u:wang:rx dir   d 是default,意思是將來目錄下新建的文件自動有次權限,只對新文件有效,對于舊文件無效

    setfacl -X file.acl directory  刪除文件中的權限

  用命令getfacl可以查看文件的ACL權限   getfacl file

    在看到的選項中有一項是mask值,是自定義用戶,自定義組的最大權限,既ACL文件上的group權限是mask值(自定義用戶,自定義組,擁有組的最大權限),而非傳統的組權限。mask只影響所有者和other的之外的人和組的最大權限。mask需要與用戶的權限進行邏輯運算后,才能變成有限的權限(effective permission),用戶和組的設置必須存在與mask權限設定范圍內才會生效。

mask值的設置 setfacl -m mask::[權限] file





   

原創文章,作者:black_fish,如若轉載,請注明出處:http://www.www58058.com/27526

(0)
black_fishblack_fish
上一篇 2016-08-04
下一篇 2016-08-04

相關推薦

  • N26-第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -rfp /etc/skel/ /home/tuser1[root@localhost ~]# chmod 700 /home/tuser1 2、編輯/etc/group文件,添…

    Linux干貨 2017-02-25
  • Linux入門之Centos6 和Centos7的安裝

    在安裝Centos6 和Centos7 之前,首先VMware需要安裝完成,所需鏡像CentOS-6.9-x86_64-bin-DVD1和CentOS-7-x86_64-Everything-1611(本次實驗所用的版本)準備好,然后開啟VMware,進行安裝之旅,在安裝過程中,Centos6 和Centos7 在前15步的配置是一樣的步驟,在16步開啟虛擬…

    2017-07-15
  • DNS 的搭建 子域授權及轉發(正向解析)

           dns(名稱解析服務).它的作用就是將主機名解析成ip地址的過程,同時它是一個分布式,分層次的主機名管理架構。為了我們能更好的了解與理解,實驗才是更好的。     安裝部署DNS服務: 一.首先安裝DNS服務器軟件 bind,還有其他相關的軟件包,有bind-libs(庫文件),bin…

    2017-07-31
  • 淺談Linux終端類型

    Linux終端類型 作者:任飛鵬            日期:2016-10-13 終端是什么: 終端(Terminal)也稱終端設備,是計算機網絡中處于網絡最外圍的設備,主要用于用戶信息的輸入以及處理結果的輸出等。 早期計算機系統中,由于計算機主機…

    Linux干貨 2016-10-19
  • 建立yum源及yum命令的使用

    一、什么是YUM     YUM的全稱為 Yellowdog Update Modifier,其主要目的是為了解決RPM包安裝時的依賴關系的問題。YUM只是一個用于軟件安裝的前端工具,其主要的服務對象還是RPM軟件包。     YUM采用C/S架構,即客戶端與服務器的?!?/p>

    Linux干貨 2015-05-11
  • 馬哥網絡21-第5周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@localhost proc]# grep "^[[:space:]]\{1,\}" /boot/grub/grub.conf root (hd0,0) kernel /vmlinuz-2…

    Linux干貨 2016-08-08
欧美性久久久久