日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CentOS文件权限管理

發布時間:2025/3/18 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS文件权限管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CentOS文件權限管理

目錄

????文件屬性

????????chown更改所有者

????????chgrp更改所屬組

????文件權限rwx

????????chmod修改權限

????????默認權限umask

????????權限判定的順序

????特殊權限SUIDSGIDsticky

????隱藏權限chattrlstattr

????ACL

?

在說權限之前,我們應該簡單的了解文件的屬性,和如何更改文件屬性:

通過我們上面的圖片我們可以看出來文件的一些基本屬性,有權限,鏈接數,所有者和所屬組,文件大小,修改時間,文件名等,我們先來介紹兩個用來更改所有者和所屬組的命令,然后對權限的管理展開討論。

    修改文件所有者

??    ??命令:chown

??    ??格式:chown?[option] newuser filename

???    ?選項:

???    ????-R?遞歸更改

????    ???--reference source target?參照source修改target

對于chown來說,既可以更改所有者其實也可以更改所屬組,我們可以利用chown user:group filename直接更改所有者和所屬組,或者chown :group filename來更改所屬組,只不過,前者只能由root來完成,后者可以是普通用戶,但是用戶必須是文件的所有者,并且還要是已經加入了目標組才可以。我們做一個簡單的演示:

?

接下來是chgrp用來修改所屬組的,這個命令是所有用戶都可以使用的,但是,用戶必須是文件的所有者,并且屬于目標組才可以,否者不能更改,基本和上圖一樣,不在做演示。

    修改所屬組

    ????命令:chgrp

?    ???格式:chgrp?[option] group filename

?    ???選項:

??    ?????-R?遞歸更改

??????????    ??--reference source target?參照source修改target

  接下來才是最重要的,權限!我們知道每個文件都有所有者,所屬組和其他人,而每一位都是有對應的權限的,這樣的設計目的試問了保證隱私和文件的安全,所有者對應的是u所屬組對應的是g其他人對應的是o,而每個文件針對每一類訪問者都有三種基本權限:r:Readable;w:Writablex:eXcutable,我們通過對三類訪問者設定不同的rwx值就可以控制訪問者對文件的權限。

????無論是對于文件還是目錄,都是有rwx權限,但是,目錄的rwx權限卻和文件的rwx權限是不一樣的,此外對于目錄的設置還有一個X權限,我們會在后面說到。我們先說一下,rwx權限所對應的數字意義:

--- 000 0

--x 001 1

-w- 010 2

-wx 011 3

r-- 100 4

r-x?101 5

rw-?110 6

rwx?111 7

  在一般情況下,我們會選擇使用數字來更改權限,例如742 = -rwxr--w-621 = -rw--w---x

  有權限,自然可以修改權限,下面我們來說一個更改文件權限的命令chmod

    修改文件權限

?      ???命令:chmod

???      ?格式:chmod?[option] mode[,mode] filename

???      ?格式:

???      ????mode:修改一類權限

????      ?????? ?u= g= o= ug= uo= go= ugo=

????      ???mode:修改一些用戶的某個權限

????       ? ? ? ?u+ u- g+ g- o+ o-

??????      ?--reference source target參照source修改target

    -R遞歸修改權限

  我們可以通過上面的方式對文件權限進行修改,為了方便,我們也可以通過使用數字來對權限進行修改,比如:chmod 744 test1.txt

我們剛才說,還有一個針對于目錄的大X權限,這是啥嘞,這是由于我們我們會修改目錄權限至少為x,但是,我們如果進行遞歸修改的話,會把文件也設置成x權限,由于x對于文件來說是可執行權限,很不安全,所以我們在遞歸修改目錄權限時,可以使用X權限,這樣就不會將目錄下面的文件加上x權限了,可是如果我們目錄下的某一個文件無論所有者所屬組還是其他人只有一個用于x權限,使用X修改目錄權限時依然會將此文件所有者所屬組和其他人都加上x權限。但是一般情況下我們可以不用X權限的,因為給目錄的默認權限是有x權限的,什么是默認權限,我們在下面來講。

我們無論是新建文件還是目錄,當我們建好后都會有一些默認的權限,(root的默認權限和普通用戶的不同),這些默認權限是哪里來的呢,為什么要這樣設定默認權限?首先我們先說哪里來的,我們可以使用umask查看當前用戶的默認權限,如果你是一般用戶,你會發現默認權限是0002 root用戶是0022,后三位是普通權限位,第一位是特殊權限位,我們先來說普通權限位。umask中全部是偶數時,可以直接減,當umask中包含奇數時,對于目錄直接減,對于文件,在奇數所在的位減完后加一。默認全局配置文件在/etc/bashrc中:(個人配置在~/.bashrc

?

這時候我們會感覺很奇怪,為啥呢,以root用戶來說,我們默認的權限是022,但是我們的創建的目錄權限是755:rwxr-xr-x,這是為啥嘞,我們先說一下,文件的最高權限是666,即:rw-rw-rw-,目錄的最高權限是777即:rwxrwxrwx,當我們用777-755?我們發現正好是022,正好是默認權限,默認權限正是最高權限-實際權限的。

接下來,我們來說作用于目錄和文件的權限都有什么作用:

  普通文件

  r:?可以讀取文件的內容

?????  ???cat less more nano vim?執行腳本

  w:?可以修改文件的內容

??????  ??nano?vim > >> tee gedit

  x:?可以執行該文件

?????  ???執行腳本

?

  目錄文件

  r:?用戶可以列出目錄下有哪些文件(不能查看文件的詳細信息)

  w:?只有w無意義。

  x:?用戶可以進入該目錄(如果知道文件名,且有相對應的文件權限 ,可以執行對應的操作)

  rx:?用戶可以進入目錄,且可以長列出。

  rw:等于只有r

  wx:?能進入,能創建能刪除,不能列出。故用戶能否刪除文件與文件自身權限無關

  rwx:?全部權限。

  ---null

  我們可以看出,文件和目錄的權限的作用是有很大區別的,我們即便對文件有全權限,如果對它的目錄沒有足夠的權限的話,我們還是無法對文件進行增刪查改,更何況他們還是有所有者,所屬組和其他人的區別。比如:當我們想查看一個目錄下的某一個文件內容時,我們至少要對目錄有什么權限,對文件有什么權限?由我們上面的總結我們知道,我們對目錄至少有一個x權限,對文件至少有r權限,這樣雖然我們無法看到目錄下有什么文件,但是我們知道有一個我們知道的文件就在該目錄下,我們依舊可以使用工具查看:?

權限判斷的順序

????先判斷是否是文件的所有人,如果是,則執行所屬人的權限后結束,如果不是所有人,則判斷是否所屬組(可以是主組也可以是輔助組),如果是,則執行所屬組的權限后結束,如果不是則執行其他人的權限后結束。

????所有人->所有組->其他人

?

特殊權限

除了普通權限外,我們的文件還是有特殊權限的,比如我們常見的文件/etc/shadow文件,我們發現它的權限是---------,可是我們作為普通用戶還是可以進行修改自己的密碼,這就意味著我們修改了shadow的內容,這是為什么呢,我們知道root這個大變態即便對文件沒有任何權限,依舊可以修改查看它,所以,這會不會和root有關呢?我們在修改密碼時不是直接對文件修改,而是使用命令passwdshadow進行修改的,而passwd這個程序所屬組和所有者都是root,這是意味著我們可能是臨時借用了root這個上帝之手對我們的密碼進行修改的,我們在看看passwd的權限:

  我們看到了什么東西?在root所有者的x位居然變成了s,這是什么呢,這就是特殊權限之一SUID權限。suid?當對一個可執行的二進制文件作用了SUID權限之后,任何擁有執行該文件權限的人,在執行的過程時都臨時擁有該文件所屬人的權限。這下我們就該知道為什么我們可以用passwd命令修改對于我們沒有任何權限的shadow了吧。因為我們臨時獲取了passwdroot所有者的權限,我們是在以root的身份在修改我們的密碼呀!!!

  除了SUID還有SGIDsgid?當對一個可執行的二進制文件作用了SGID權限之后,任何擁有執行該文件權限的人,在執行的過程時都臨時擁有該文件所屬組的權限。?當對一個目錄作用了SGID權限之后,任何對該目錄有wx權限的用戶在該目錄下創建的文件及目錄的所有屬均為該目錄的所有組。對于第二個作用,我們做一個測試:

  Html目錄屬于HTML組,而redhat用戶也有HTML附加組,然后我們在HTML中創建文件:

  此時我們發現如果僅作為一個組用戶進入改組,創建的文件所屬組依然是自己的,作為同組的其他用戶還是無法修改,接下來我們加上SGID權限chmod 2770 html

  這時候我們發現,Redhat用戶創建的文件所屬組變成了HTML,這就是SGID的作用之一,作為同組的人員,我們可以對此文件進行修改,團隊合作起來更方便。

???  ?接下來我們看特殊權限的最后一個sticky,它的作用是當對一個目錄使用了sticky之后(只限制組用戶,目錄的owner不受影響),該目錄下的文件僅其所屬人才能刪除。屬于這個組的其他成員可以對目錄下的文件查看,修改,就是無法刪除。

?

  我們之前說默認權限有4位比如root的默認權限是0022,最前面的那個是特殊權限,由于特殊權限默認是什么都沒有,所以是0,我們剛剛的演示其實也可以看出,設置特殊權限是SUID對應的是4SGID對應的2sticky對應的是1,還有就是我們發現特殊權限居然有大寫的,這是為什么呢,我們可以看到,三個特殊權限都是在x位上,為了區分權限,如果在某一位有x權限,對應的特殊權限就是小寫的,如果沒有x權限,對應的特殊權限就是大寫的,三個權限分別是sSsS,tT

隱藏權限

對于隱藏權限,我們不會說太多,說兩個我們平時最常用的選項:

設置:

????命令:chattr

????格式:chattr?[option] filename

????格式:

???????+i??不能刪除不能改

????????+a??不能刪除,只能追加

這設置就厲害了,就連我們的root也無法改變,其實他就是為了防止root誤操作而刪除文件的,我們還可以利用lsattr進行查看:

ACL權限管理

為了滿足我們對細化權限的設置,在linux系統中添加了ACL權限,用于對單個用戶或者單個組進行經典的rwx權限設置,在centOS6中創建了新的分區后需要我們單獨進行ACL功能的添加才可以使用,我們也不能將一個具有ACL權限的文件或目錄拷貝到還沒有使用ACL的分區上面,centOS7xfs文件系統時自動啟動ACL功能的。

?

ACL權限的設置與取消

如何設置ACL權限,我們需要知道ACL是針對于用戶和組進行設置的,對其他人無效,并且ACL目標是文件或目錄。

對于用戶設置,我們使用的命令是:setfacl –m u:username:rwx /path/filename,在我們針對目錄或文件設置完ACL權限以后,我們可以通過getfacl命令查看我們設置的ACL權限。

?

我們可由上圖看到,在設置完ACL權限時,其他人的權限位后多了有個“+”,這就是ACL權限的標志。在我們顯示出的tty.txtACL權限里,我們看到#號后面的是我們本文件的原本信息,并且,設置完ACL權限以后,mask就會占領g,所以我們要是直接設置

setfacl –m g::rw filename的話其實就是在設置mask,所以,當我們在設置完ACL權限后,除非我們刪除全部的ACL權限,否則,無法在對用戶的g位設置任何權限。

我們在針對某一目錄設置完ACL權限之后,能不能在目錄下創建文件讓它也具有相同的ACL權限呢?我們看一下:

我們以實際行動說明了使用setfacl –m u:username:rwx /path/filename設置完權限后,我們對其目錄一下的文件都不能繼承父目錄的ACL權限,咋辦?好辦,我們可以使用setfacl –mR d:u:username:rw /path/filename來對目錄設置這個權限,這樣的話,目錄下面的文件和新目錄也能繼承父目錄的ACL權限了,但是有一點需要注意,我們使用setfacl –m u:username:rwx /path/filename和設置它下面的文件的ACL權限是有一點不一樣的,因為我們需要進入目錄后查看修改子文件,所有我們在設置目錄的ACL權限時,一定要注意,如果需要進入目錄的話ACL權限應該加上x;

?

對用戶的ACL權限設置我們已經看到了,對組的ACL設置同樣是如此:

setfacl?–m g:username:rwx /path/filename

setfacl?–mR g:u:username:rw /path/filename

ACL權限判斷的順序

????先判斷是否是文件的OWNER,如果是,則執行OWNER的權限后結束,如果不是OWNER則判斷是否是ACLUSER,如果是則執行USER權限后結束,如果不是ACLUSER,?則判斷是否屬于GROUPACL GROUP,如果是,則取最大權限。如果不屬于任何GROUP,則執行OTHER

????所有人->所有組->其他人

還有剛才那個mask,他是對最大權限的設置,我們一般不會管他,我們在設定ACL權限時,它是默認隨著我們ACL權限的設置而變化的,保證我們設置的每個權限都能生效,如果我們想限定最大權限,我們可以在設置完所有ACL權限時,對它進行設置。

設置命令:setfacl?-m mask:rwx f1

ACL權限的其他參數和取消設置

????base ACL?不能刪除

???setfacl -k dir?刪除默認ACL權限

setfacl?--set u::rw,u:wang:rw,g::r,o::- file1

????setfacl?-M acl.txt f1[dir1]

????????acl.txt?內容來自getfacl f1 > acl.txt,如下

????????????#?file: fstab

????????????#?owner: root

????????????#?group: root

????????????user::rw-

????????????user:zhangfei:rwx

????????????group::r--

????????????mask::rwx

????????????other::r—

????setfacl -x u:liubei f1??單獨去除一條ACL權限

setfacl?-X aclrm.txt f1[ f2 f3 *]

???????????????aclrm.txt?內容如下

??????????????u:liubei

??????????????g:shuguo

setfacl -b f1?去除該文件上ACL屬性

?

?

備份和恢復ACL

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

備份ACL權限信息

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

setfacl -R -b /tmp/dir1(刪除ACL權限)

還原ACL權限信息

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

setfacl --restore acl.txt

?

轉載:http://www.cnblogs.com/duzhaoqi/



轉載于:https://blog.51cto.com/lixin752299/2061361

總結

以上是生活随笔為你收集整理的CentOS文件权限管理的全部內容,希望文章能夠幫你解決所遇到的問題。

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