日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Linux 访问文件的acl信息,linux文件权限管理与ACL访问控制列表

發布時間:2024/10/8 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 访问文件的acl信息,linux文件权限管理与ACL访问控制列表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、文件屬性

1.文件屬性:

文件屬性操作

chown : change owner ?,設置文件所有者

chgrp : change group ?,設置文件的屬組

文件屬主修改: chown

格式:chown [OPTION]… [OWNER][:[GROUP]] FILE…

用法:

OWNER

OWNER:GROUPNAME ? ?(同時修改屬主、屬組)

:GROUPNAME ? ? ? ? ? ? ? ?(默認屬主,修改屬組)

(?命令中的冒號可用.替換;)

chown ?–reference=RFILE FILE… ? 參照某文件權限設置權限

文件屬組修改: chgrp

格式:chgrp [OPTION]… GROUP FILE…

chgrp [OPTION]

-R ?遞歸 遞歸設置目錄中的文件、子目錄權限)

2.文件權限:

1)權限定義對象:

文件的權限主要針對三類對象進行定義:

owner: 屬主,文件擁有者, u

group: 屬組, 文件擁有組,g

other: 其他, 除以上兩類人以外的全部用戶,o

每個文件針對每類訪問者都定義了三種權限:

r: Readable ,讀取

w: Writable ,寫

x: eXcutable,執行

系統對于權限,是依次將用戶權限與文件、文件夾的所有者、組、其他權限,依次匹配

注:只針對部分文件系統,fat格式的文件系統不支持權限修改(元數據分區中無此內容)

2)權限實際意義

文件權限的實際意義:

r: 可使用文件查看類工具獲取其內容

w: 可修改其內容,內容也可以被破壞,但是無法刪除文件

x: 可以把此文件提請內核啟動為一個進程,針對二進制程序、腳本而言

目錄權限的實際意義:

r: 無法進入目錄(cd)可以使用ls查看此目錄中文件列表,但是無法查看文件屬性—

w: 可在此目錄中創建文件,也可刪除此目錄中的文件(但需要先有X權限)

+wx : 可以進入目錄,創建、修改、刪除文件、文件內容,但是無法獲取文件列表

x: 可以使用ls -l查看此目錄中文件列表,可以cd進入此

3)權限操作

權限賦值的八進制數字法:

— 000 0

–x 001 1

-w- 010 2

-wx 011 3

r– 100 4

r-x 101 5

rw- 110 6

rwx 111 7

例如:

640: rw-r—–

rwxr-xr-x: 755

權限修改:

命令格式: ?chmod [OPTION]… OCTAL-MODE FILE…

chmod [OPTION]… MODE[,MODE]… FILE…

-R: 遞歸修改權限 ?(此操作有風險)

+ X (大寫) 當遞歸+X時,如果目錄內有子目錄,則加執行權限, 如果遇到文件,若文件本身

無執行權限,則不加,若有則加x權限

eg : chmod a=rwX \目錄

MODE:

修改一類用戶的所有權限:

u= ? ? g= ? ? o= ? ? ug= ? a= (all,全部用戶) ?u=, ? ? g=

修改一類用戶某位或某些位權限

u+/- ? ?g+/- ? o +/- ? ?a+/-

八進制賦值

eg: ?chmod ?666 file1

chmod [OPTION]… –reference=RFILE FILE…

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

4)新文件、目錄默認權限 ?umask值

umask作用:用于設置創建文件、目錄時的默認權限

默認權限:

新建文件默認權限: ?666-umask

(取值為666是處于安全考慮,使新建文件默認下均不含有執行權限)

如果所得結果某位存在執行(奇數)權限,則將其權限+1,得到最終權限

eg: umask=125 ? –> ?666-125 =541 ?–>+1處理后為: 642 ?(5+1,1+1)

新建目錄默認權限: 777 – umask

eg : ?umask=100 –> 777-100=677 (rw-rwx-rwx)

umask 操作:

umask ? ?查看umask 值 ?(無需加參數)

(注:如論如何設定,新文件默認均無執行權限)

umask N ?: 設定umask = N

注: umask 每個位的最大值不超過7

umask -S ? 以模式方式顯示umask

eg: ? u=rwx,g=rw,o=x

umask -p ?輸出umask值以供調用

eg: ? umask 0022

3特殊權限:SUID(s), SGID(s), Sticky(t)

linux安全上下文

(前提:進程有屬主和屬組;文件有屬主和屬組)

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

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

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

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

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

SUID

作用:可執行文件上SUID權限(作用于二進制程序)(u+s后)任何用戶可啟動此進程,且

視為以root用戶啟動,并且具備root權限

(對于各種命令,+s之后,任何用戶使用它都可以獲取root使用時的權限)

作用對象:SUID只對二進制可執行程序有效,SUID設置在目錄上無意義

權限設定:

chmod u+s FILE…

chmod u-s FILE…

SGID

作用:

目錄:當一個目錄實行了sgid,在目錄中任何新創建的文件,都繼承本目錄的屬組

為自己的屬組

文件:作用在文件上, 一旦一個文件被賦予SGID的權限, 無論當前的用戶有無執

行權限,用戶運行該程序,會自動繼承該程序所屬組的權限。

作用對象:目錄、文件

權限設定:

chmod g+s FILE…

chmod g-s FILE..

Sticky 位 (粘滯位)

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

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

作用對象:僅作用于目錄,sticky 設置在文件上無意義

權限設定:

chmod o+t DIR…

chmod o-t DIR…

例如:

ls -ld /tmp

drwxrwxrwt 12 root root 4096 Nov 2 15:44 /tmp

注:當文件夾、文件 SUID\SGID\STKCKET 顯示為大寫時,為錯誤狀態

小寫才是正常狀態

chmod 777 /dir 未必可以除掉 s權限

應該改為: chmod 0777 /dir

特殊權限的數字法:

SUID SGID STICKY

000 0

001 1

010 2

011 3

100 4

101 5

110 6

111 7

eg: chmod?4777 /tmp/a.txt

權限位映射:

SUID: user,占據屬主的執行權限位

s: 屬主擁有x權限

S:屬主沒有x權限

SGID: group,占據屬組的執行權限位

s: group擁有x權限

S: group沒有x權限

Sticky: other,占據other的執行權限位

t: other擁有x權限

T: other沒有x權限

注意:修改時,應注意是否需要先賦予x權限,后再追加s權限

設定文件的特定屬性:

chattr +i 不能刪除,改名,更改

chattr +a 只能增加

lsattr 顯示特定屬性

二、訪問控制列表ACL

1.ACL

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

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

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

2. ACL安裝:

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

CentOS7.X之前版本,默認手工創建的ext4文件系統無ACL功能。

需手動增加:

tune2fs –o acl /dev/sdb1

mount –o acl /dev/sdb1 /mnt

3. ACL 使用詳解

命令:setfacl 設置ACL規則

getfacl ?file|dir ?獲取文件、目錄ACL列表

setfacl ? ?設定文件訪問控制列表

用法: setfacl [-bkndRLP] { -m|-M|-x|-X … } file …

-m, –modify=acl 更改文件的訪問控制列表

u:username:rwx file/dir ?用戶

g:groupname:rwx file/dir ?組

o:0 file/dir ? 其他

:0 指無任何權限

-M, –modify-file=file 從文件中讀取訪問控制列表條目來修改對應文件

-x, –remove=acl 根據文件中訪問控制列表移除條目

-X, –remove-file=file 從文件讀取訪問控制列表條目并刪除

-b, –remove-all 刪除所有擴展訪問控制列表條目

-k, –remove-default 移除默認訪問控制列表

–set=acl 設定替換當前的文件訪問控制列表

–set-file=file 從文件中讀取訪問控制列表條目設定

–mask 重新計算有效權限掩碼

-n, –no-mask 不重新計算有效權限掩碼

-d, –default 應用到默認訪問控制列表的操作 (生效以后,目錄中的任何新建文件也會賦予acl默認權限)

-R, –recursive 遞歸操作子目錄

-L, –logical 依照系統邏輯,跟隨符號鏈接

-P, –physical 依照自然邏輯,不跟隨符號鏈接

–restore=file 恢復訪問控制列表,和“getfacl -R”作用相反

–test 測試模式,并不真正修改訪問控制列表屬性

-v, –version?????????? 顯示版本并退出

-h, –help????????????? 顯示本幫助信息

使用示例:

mount -o acl /directory ? ? ?掛載ACL,使指定目錄的ACL臨時生效,重啟后失效

getfacl file |directory ? ? ? ?查詢ACL列表

setfacl -m u:wang:rwx file|directory ? 設定用戶的指定權限

setfacl -Rm g:sales:rwX directory? ?遞歸設定組對目錄以及其目錄內文件的權限

setfacl -M file.acl file|directory 使用file.acl文件中的acl條目對file/dir進行acl修

改文件格式,參照getfacl得到的信息

setfacl -m g:salesgroup:rw file| directory ? 對指定組設定對某文件、目錄的權限

setfacl -m d:u:wang:rx directory ? 對dir中的新建文件也賦予wang:rx權限

刪除用戶wang對file/dir的ACL條目

文件內容格式:u:username

g:groupname

o:

setfacl -X file.acl directory ? ? 刪除dir上 file.acl 文件中對應的條目

4. ACL中的mask值

ACL文件上的group權限是mask 值(自定義用戶,自定義組,擁有組的最大權限) ,除了所有者、

others ,其他人(屬組、ACL添加的其他用戶)的權限均不會高于此權限,受此權限的影響而非傳統的組權限getfacl 可看到特殊權限: flags

默認ACL權限給了x,文件也不會繼承x權限。

base ACL 不能刪除

setfacl -k dir 刪除默認ACL權限

setfacl -b file1清除所有ACL權限

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

5.備份和恢復ACL

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

#getfacl -R /tmp/dir1 > acl.txt

#setfacl -R -b /tmp/dir1

#setfacl -R –set-file=acl.txt /tmp/dir1

#getfacl -R /tmp/dir1

總結

以上是生活随笔為你收集整理的Linux 访问文件的acl信息,linux文件权限管理与ACL访问控制列表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。