linux中的權限和ACL

linux中權限詳解和ACL

權限,特殊權限,FACL

2a

用ls -l filename 可以查看文件或者目錄的詳細信息,具體分析一下

在第一個空格前,有10個字段,第一個“-”表示文件類型,后邊“rw-r–r–”表示權限

文件類型 ????“-”? 普通文件

“d”? 目錄

“b”? 塊設備文件

“c”? 字符設備文件

“l”?? 字符鏈接文件(軟鏈接)

“p”?? 管道文件

“s”?? 套接字文件

文件(目錄)權限 ??共9位,每3位一組,每一組都有r(讀)w(寫)x(執行)三個權

限,第一個3位表示屬主的權限,第二個3位表示屬組的權限,第三

個3位表示other權限

以上圖為例,第一個“-”表示是個普通文件,后邊3位“rw-”表示屬主權限,有讀寫權限,執行位位“-”說明沒有執行權限,“r–”表示屬組有只讀權限,other和屬組一樣都是只讀文件的權限主要針三類對象進行定義

owner:屬主?? u

group:屬組??? g

other?? 其他?? o

all??? 所有?? a??? 修改所有

文件權限

r:可讀,可以使用cat等命令來查看文件內容

w:可寫,可以編輯或者刪除此文件

x:可執行,可以在命令提示符下當做命令提交給內核執行

目錄權限

r:可讀,可以對目錄執行ls列出內部的所有內容

w:可寫,可以在此目錄創建或刪除文件(需要x權限)

x:可執行,可以用cd命令切換進此目錄,也可以使用ls -l查看詳細的信息

X:該權限只能對目錄使用,給目錄下的子目錄加x權限,但是如果文件本身有x權限,那么也不會去管,如果文件沒有x權限也不會加x

數字法表示權限

讀 r=4? ??寫 w=2 ???執行 x=1

例: rwxrw–w-??? 用數字法就是,(4+2+1)(4+2+0)(0+2+0)=762

權限管理命令

chown??? 修改屬主

-R:遞歸 (作用于目錄,修改該目錄下的所有子目錄和文件)

例:chown? username:groupname?? filename(directory) (該命令既可以修改屬主也可以修改屬組,命令中的:可以用.代替)

chgrp???? 修改屬組

-R:遞歸 (作用于目錄,修改該目錄下的所有子目錄和文件)

 

chmod??? 修改權限(該命令也可以用數字法來設置權限,例:chmod? 632? filename)

用法:chmod [OPTION]… OCTAL-MODE FILE…

-R: 遞歸修改權限

chmod [OPTION]… MODE[,MODE]… FILE… MODE: 修改一類用戶的所有權????????? 限: u= g= o= ug= a= u=,g= 修改一類用戶某位或某些位權限 u+ u- g+ g- o+ o- a+ a- + –

例:chmod u=rwx,g=r,o= file1? 該命令就把文件file1的權限修改為:屬主有讀寫執行權限,屬組有只讀權限,其他沒有權限

chmod [OPTION]… –reference=RFILE FILE…

參考RFILE文件的權限,將FILE的修改為同RFILE

例 : chmod? –reference=file1 file2? 參照file1的權限的設置file2的權限

umask值:遮罩碼

root默認umask值為022

普通用戶的umask默認值為002

umask:可以查看用戶的umask值

umask #:可以設定為#的umask值

例:umask? 145,那么通過umask命令可以看到顯示為145,

那么新建文件的權限就為:666-umask??????? 666-145

新建目錄的權健就為:777-umask??????? 777-145

如果umask為默認,那么root創建文件或目錄的權限就是777或666減去默認值022

其他用戶創建的權健就是777或666減去默認值002

有相減的方法來設置目錄的權限時,算出來的結果是多少,那么權限就是多少。但是對文件來說,文件默認是么有x權限,如果相減算出來的結果有x權限的話,則將其權限+1

umask -S:用模式法來顯示

例: [root@centos7 app]#umask -S

顯示結果:??? ??u=rwx,g=rx,o=rx

umask -P :輸出的結果可以被直接調用

 

特殊權限:SUID? SGID? Sticky

SUID: 運行某程序時,相應進程的屬主是程序文件自身的屬性,而不啟動者(只要該程序有SUID權限,那么不管訪問該程序的用戶是屬組還是other,都在訪問的時候臨時擁有屬主的權限,用屬主的身份進行訪問)

SGID:運行某程序時,相應進程的屬組是程序文件自身的屬性,而不啟動者所屬的基本組(只要該程序有SGID權限,那么不管訪問該程序的用戶是屬組還是other,都在訪問的時候臨時擁有屬組的權限,用屬組的權限進行訪問)

Sticky:創建一個公共目錄,在該公共目錄下,每個人都可以創建刪除自己的文件,但是不能刪除別人的文件

 

SUID()

1、 suid只能作用在二進制程序上,不能作用在script上

2 、執行suid權限的程序時,此用戶將繼承此程序的所有者權限

SGID

1 、作用在二進制程序上,執行sgid權限的程序時,此用戶將繼承此程序的所屬組權限

2 、作用在目錄上:在此目錄新的文件的所屬組,將自動繼承目錄的所屬組

Sticky:

1 、只能作用在目錄

2 、具有sticky權限的目錄,普通用戶只能自已刪除自已的文件,不能刪除別人的文件

特殊權限的設置命令

chmod? u+s |u-s filename

chmod? g+s |g-s filename(directory)

chmod? o+t |o-t directory

如果屬主,屬組和other沒有相應的x權限,那么特殊權限設置以后顯示為大寫(S,S,T)

 

特殊權限單獨用數字法來表示SUID(4)、SGID(2) 、Sticky(1)

例:chmod? 4743 | 2654 |1400? filename

 

chattr? +i? 不能刪除,修改,改名,所有用戶都不可以,包括root

+a? 只能進行追加內容,不能刪除,不能清空

+A? 不更新atime

-i?? 去除i特殊屬性,恢復原來的權限

-a

-A

lsattr :i和a、A特殊屬性設置成功后,可以用lsattr進行查看

例:[root@centos7 app]#chattr +i file1

[root@centos7 app]#lsattr file1

i屬性顯示結果 ??—-i———– file1

a屬性顯示結果?? —–a———- file1

 

ACL? 訪問控制列表

(ls -l查看文件目錄時,9位權限之后的點變為“+”,表示該文件目錄設置了ACL)

ACL:Access Control List,實現靈活的權限管理

除了文件的所有者,所屬組和其它人,可以對更多的用戶設 置權限

CentOS7 默認創建的xfs和ext4文件系統具有ACL功能

CentOS7 之前版本,默認手工創建的ext4文件系統無ACL功能,需手動增加

CentOS6系統安裝完成后,新建分區默認不支持ACL

 

setfacl ??-m:設置,附加acl權限

格式:setfacl -m u:username:perm? filename? 例:setfacl -m u:yan:rw ?file

setfacl -m g:groupname:perm? filename? 例:setfacl -m g:opts:rwx ?file

-x:取消acl權限,用法同-m

-k:清空默認的acl權限

-R:遞歸(對目錄下新建文件不生效,如果要對新建文件生效需要加d(d表示默認)(例:d:username:rw))

-b:清空所有的ACL

getfacl:獲?。ú榭矗〢CL權限

getfacl file1 | setfacl –set-file=- file2 復制file1 的acl權限給file2

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

 

getfacl 獲取ACL時,有一個mask,這個mask的值,就是ACL文件(目錄)上的group的權限,并不是傳統的組權限。

 

mask的作用范圍是(自定義用戶,自定義組,所屬組),起到一個限制最大權限的作用。這三類用戶的最大權限不能超過mask的權限(mask最大權限需要與用戶的權限進行邏輯與運算后才能得到).

 

用戶或組的設置必須存在于mask權限設定范圍內才會生效

 

修改 mask值:

setfacl ?-m ?mask::(rwx)? filename

 

備份和恢復ACL

主要的文件操作命令cp和mv都支持ACL,只是cp命令需要 加上-p 參數。但是tar等常見的備份工具是不會保留目錄 和文件的ACL信息

例:1、getfacl -R ?filename > acl.txt

setfacl -R –set-file=acl.txt ?filename2

2、setfacl –restore? acl.txt(該命令要在相對路徑下執行)

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88605

(1)
燕李鵬燕李鵬
上一篇 2017-11-18
下一篇 2017-11-18

相關推薦

  • 標準I/O和管道

    程序包含指令和數據,經常需要讀入數據和輸出數據 打開的文件都有一個fd:file descriptor(文件描述符) 用nano打開一個文件,查看其PID  0,1,2就是所謂的文件描述符。 在Linux里輸入輸出和錯誤都由這三個描述符來表示 標準輸入(STDIN) -0 默認接受來自鍵盤的輸入 標準輸出(STDOUT)-1 默認輸出到終端窗口 標…

    Linux干貨 2016-08-08
  • vim編輯器及練習題

    命令用法: vim [OPTION]… FILE…  +#: 打開文件后,直接讓光標處于第#行的行首                   &nbs…

    Linux干貨 2016-08-11
  • Linux作業管理、網絡客戶端工具和bash循環

    Linux系統作業控制;                   job:         前臺作業foregroud:通過終端啟動,且啟動后會一直占據終端;         后臺作業…

    Linux干貨 2017-01-05
  • 網絡班第27期第一周作業

    1、         描述計算機的組成及其功能 CPU:主要由控制器和運算器組成,其他還有寄存器和緩存等。 控制器:其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。 運算器:功能是對數據進行各種算術運算和邏…

    2017-07-29
  • 第一周作業

    一、計算機的組成及其功能。 計算機是由運算器、控制器、存儲器、輸入設備、輸出設備五大部件組成,每一個部分分別按照要求執行特定的基本功能。 運算器:運算器的主要功能是對數據進行各種運算。 控制器:控制器是整個計算機系統的控制中心,它指揮計算機各部分協調地工作,保證計算機按照預先規定的目標和步驟有條不紊的進行操作及處理。 存儲器:存儲器的主要功能是存儲程序和各種…

    Linux干貨 2017-01-18
  • 如何在CentOS上構架一個簡易的局域網web服務器

    首先,要取得適用你系統版本的http源碼包,這里推薦兩個網站: httpd.apache.org www.kernel.org 根據自己系統的版本下載相應的源碼包; CentOS7 下載 httpd-2.4.25.tar CentOS6 下載 httpd-2.2.32.tar 以CentOS 6 示例: 首先,我們先來為http…

    2017-03-09
欧美性久久久久