Linux之下的文件權限

文件的屬性

Linux之下的文件權限
文件屬性

Linux下的文件類型

  • -:普通文件
  • d:?目錄文件
  • b: 塊設備
  • c:?字符設備
  • l:?符號鏈接文件
  • p:?管道文件pipe
  • s:?套接字文件socket
    ……
Linux之下的文件權限
權限表示法
Linux之下的文件權限
文件的權限

在文件權限中,一共有十字符,第一個字符為文件的類型。接下來的字符分為三組,分別是文件所有者、所屬組、其他人。
每一組分別由rwx?三個參數組合。其中,r代表可讀(read)、w代表可寫(write)、x代表可執行(execute)
這三個權限的位置不會改變,如果沒有權限,就會出現減號而已

  • 文件所有者:由于Linux是個多人多任務的系統,每個人的都有自己的隱私,總不希望被別人看到吧!文件所有者的角色顯得非常重要了

  • 所屬組:是多個用戶的集合**

  • 其他人:不是所有者,又沒有加入這個 組里的成員。

Linux下的權限管理

文件的權限

對于二進制文件來說,r和w沒有任何意義,但x是非常危險的
對于普通文件來說:文件對應的是文件的內容。

r只能讀取文件內容。也能復制文件的內容,復制到的目標目錄必須有wx的權限。

w:能編輯文件內容。刪文件,移動、改名、新建文件是由它所在的目錄決定的。是由目錄的wx權限來決定的(因為目錄存的是文件的列表結構和inode號)

x:是對文件的執行。x對文件來說是非常危險的,特別是對于可執行程序的文件,對文本文件毫無意義。

目錄的權限

對目錄來說:對應的是文件名的列表

r:能讀取目錄內的文件列表,但無法讀取文件屬性。

w:可以mv,cp,rm,mkdir,touch與該目錄下的文件名異動有關,前提要有x權限。

x:能否進入該目錄成為工作目錄,cd
有w無x:是無法刪除、移動、改文件

X:只給目錄x權限,不給文件x權限,如果文件本身有x權限 ,那同樣會給。

權限獲取的順序

獲取權限的順序:先看你是不是所有者,再看你是不是所屬組,最后看你是不是其他人。如果是其中的一類人,那后面的不會去看。
對普通用戶來說,沒有權限是不能訪問資源的
讀寫權限對root用戶不受限制。但x權限受控制。
需要注意的是:對root用戶來說,如果自己沒有x權限。只要權限后面的幾類人帶有x權限,root就能執行。而普通用戶不行

文件的所有者的所屬組

  • 修改文件的屬主:chown
    chown [OPTION]… [OWNER][:[GROUP]] FILE…
    用法:
    OWNER
    OWNER:GROUP
    命令中的冒號可用.替換
    -R: 遞歸
  • 修改文件的屬組:chgrp
    chgrp [OPTION]… –reference=RFILE FILE…
    -R 遞歸
  • 修改文件的權限:chmod
    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 [OPTION]… –reference=RFILE FILE…
    參考RFILE文件的權限,將FILE的修改為同RFILE。只改變文件的權限。

上面所提的權限在Linux通用的傳統系統EXT系列和Centos 7上的xfs文件系統才支持,權限的支不支持不是Linux說了算,而是由文件系統說了算。

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

umask 可以拿掉一些權限,因此,適當的定義 umask 有助于系統的安全, 因為他可以用來建立默認的目錄或文件的權限。

對目錄來說:
default=777-umask

對文件來說:
default =666-umask 再觀察結果。
如是有基數們,基數加1。是偶數數不變

  • 非特權用戶umask是 002
  • root的umask 是 022
  • umask: 查看
  • umask #: 設定
  • umask 002
  • umask –S 模式方式顯示
  • umask –p 輸出可被調用
  • 全局設置: /etc/bashrc 用戶設置:~/.bashrc

Linux系統上文件的特殊權限

SUID, SGID, Sticky
三種常用權限:r, w, x user, group, other

安全上下文

前提:進程有屬主和屬組;文件有屬主和屬組
(1) 任何一個可執行程序文件能不能啟動為進程,取決發起者對程序文件是否擁有執行權限
(2) 啟動為進程之后,其進程的屬主為發起者,進程的屬組為發起者所屬的組
(3) 進程訪問文件時的權限,取決于進程的發起者
(a) 進程的發起者,同文件的屬主:則應用文件屬主權限
(b) 進程的發起者,屬于文件屬組;則應用文件屬組權限
(c) 應用文件“其它”權限

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

  • s: 屬主擁有x權限
  • S:屬主沒有x權限
  • SUID:用數字4表示。
    只適合于二進制程序上,繼承于所有者的權限。

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

  • s: group擁有x權限
  • S:group沒有x權限
  • SGID:用數字2表示。
    1)繼承二進制程序所屬組的權限
    2)作用于目錄,此目錄新建的文件繼承目錄的所屬組.

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

  • t: other擁有x權限
  • T:other沒有x權限
  • Sticky:用數字1表示
  • sticky:作用于目錄,此目錄的文件只能被所有者和root刪除
    針對普通用戶來說,在此目錄下,不能覆蓋別人的文件。要想覆蓋必須在這個文件所屬的組或者有別人的文件w權限才行。

ACL 訪問靈活的權限管理

設置ACL權限:setfacl

查看ACL權限:getfacl

語法:setfacl [-bkRd] [-m|-x acl 參數] 目標文件名

選項與參數:

  • -m:設置后續的acl權限,不可與-x一起使用
  • -M:用文件批量設置acl權限
  • -x: 刪除后續的acl權限,不可與-m一起使用
  • -X:用文件批量刪除acl權限
  • -b:刪除所有的acl權限
  • -k:刪除默認的acl權限
  • -R:遞歸設置acl權限
  • -d:設置默認acl權限,只對目錄有效
ACL:Access Control List,實現靈活的權限管理
除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限
CentOS7 默認創建的xfs和ext4文件系統具有ACL功能
CentOS7 之前版本,默認手工創建的ext4文件系統無ACL功能,需手動增加
tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test

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

  • mask值:文件或目錄一旦定義了acl,ACL文件上的group權限是mask的值,用chmod改組的權限,是改的mask的值
  • mask只影響除所有者和other的之外的人和組的最大權限
  • mask需要與用戶的權限進行邏輯與運算后,才能變成有限的權限(Effective Permission)
  • 用戶或組的設置必須存在于mask權限設定范圍內才會生效 setfacl -m mask::rx file

–set選項會把原有的ACL項都刪除,用新的替代,需要注意的是一定要包含UGO的設置,不能象-m一樣只是添加ACL就可以
示例:
setfacl –set u::rw,u:wang:rw,g::r,o::- file1
getfacl file1 | setfacl –set-file=- file2 復制file1的acl權限給file2

備份和恢復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
setfacl --restore acl.txt
getfacl -R /tmp/dir1

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

(0)
安靜的家伙7048安靜的家伙7048
上一篇 2018-04-08
下一篇 2018-04-08

相關推薦

  • Linux 基礎知識

    Linux基礎入門 完整的linux OS的由來?* linus創建了Linux的kernel,GNU提供了N多的應用程序Application;?* 俠義上的OS指的就是kernel; 軟件開發的模式?* 大教堂式?* 集市?Linux就是由無數個黑客共同開發來的,屬于集式式的 評判操作系統的快慢監測網站:www.top500.org Linux在服務器領…

    2018-04-12
  • VM虛擬機克隆中的網絡問題

    使用VM中的虛擬機克隆,可以很方便的搭建一些實驗或生成環境,但在克隆時應注意幾個問題: 1、網絡 一般在克隆后,配置好的網絡地址都會保留,需要重新對克隆的機器更改IP地址和hostname 具體更改方法為: IP地址:使用vi編輯 /etc/sysconfig/network-scripts/ifcfg-eno16777736文件,將ip地址更改為需要的ip…

    Linux筆記 2018-05-08
  • 進程管理

    ps top dstat iotop bg fg nohup 并行

    2018-05-05
  • 第4周作業

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

    Linux筆記 2018-06-04
  • Linux用戶、組以及正則表達式練習題

    Linux用戶、組以及正則表達式練習題 復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限 [root@localhost ~]# cp -r /etc/skel /home/tuser1 [root@localhost ~]# chmod 700 /home/tuser1 -R …

    Linux筆記 2018-06-02
  • vi命令的用法大全

    Vi有三種基本的工作模式:指令行模式、文本輸入模式、行末模式。他們的相互關系如所示。 指令模式(Command Mode) 下輸入 a、i、o進入文本輸入模式(Input Mode) 文本輸入模式(Input Mode) 下按ESC進入指令模式(Command Mode) 指令模式(Command Mode)下輸入:進入末行模式(Last line Mode…

    Linux筆記 2018-05-03
欧美性久久久久