文件權限

一、文件權限

       linux系統中文件眾多,針對不同的文件面向的對象不同,因此對其設置的權限各不相同,那么我們來對文件設置權限呢?

        1470484917439742.jpg

            如上圖所示,文件的權限主要分三個部分:r、w、x

                                文件面向的對象有三類:屬主,數組和other

           rwx權限分別對于應文件和目錄的意義如下:

            對于文件:

                            r:可以ls,可以cat

                            w:可以修改文件中的內容,可以ll,如果其父目錄具有wx權限可以刪除文件

                            x:可以執行二進制程序

            對于目錄:

                            r:可以ls

                            w:可以在目錄中創建文件,但需要配合x使用

                            x:可以cd到目錄,可以訪問目錄中的文件

  

        相關命令:chmod    chown   chgrp

        chmod:修改權限

                格式:

                          chmod [option] file | dir

                          chmod u+rwx file

                         chmod a+rwx file    a—-ugo

                          chmod u=rwx file

                          chmod 777 file

                注意:當我們執行給文件添加X權限時,如果該文件之前權限有一位x,則可以添加x權限,如果一位x權限都沒有,則不能添加x權限。

                          目錄不受影響

                               rwxr–r– –>chmodrwxrwxrwx
                               ——— –>rw-rw-rw-

                選項:

                          -R 遞歸

                          –reference=RFILE FILE…   參考RFILE文件的權限,修改FILE的權限與RFILE一致

        chown:修改屬主和屬組

                格式:

                           chown  tom:harry f1

                           chown tom f1       修改屬主為tom

                           chown tom: f1      修改屬主和屬組為tom

                           chown :harry f1    修改屬組為tom

        chgrp:將文件的屬組

        umask:我們發現在我們創建文件或目錄時,他們都會有一個默認的權限,這個權限就是通過umask來設置的,umask這個值管理員默認是022,普通用戶是002,當我們在配置文件(/etc/profile、/etc/bashrc、也可以是用戶自己的.bashrc)中配置umask的值時,就可以定義用戶創建文件或目錄時的默認權限,也可以說是限制了ugo的權限。

                管理員文件的權限和umask的關系為:666-022=644,如果計算結果中有基數,則加1,例如666-123=543 ->644,這里加1主要是為了避免給用戶提供文件的執行權限,將執行權限屏蔽。

                管理員目錄的權限和umask的關系為:777-022=755

                umask -S  查看文件夾的默認權限

                umask -p 輸出可以被調用

                umask # 可以設置默認值的大小臨時生效

二、文件系統的特殊權限

        當我們用tom的身份執行cat /etc/passwd 時,我們的匹配權限的流程是,先匹配/etc/passwd 這個文件的屬主,該文件的數主是root與tom不是同一個,不匹配,接著匹配文件的數組,發現也不匹配,接下來就到other的權限了,我們發現other的權限為r,所以我們就以other的身份來訪問/etc/passwd 這個文件了,這里需要注意的是,當我們從前往后匹配的時候,如果匹配到權限就不往后面匹配了,就算后面的數組或者other的權限比數主大,也不匹配。

            tom@cenots6.8  ~ # ll /etc/passwd
            -rw-r--r--. 1 root root 1849 8月   6 17:44 /etc/passwd
            tom@cenots6.8  ~ # cat /etc/passwd

特殊權限  

suid

            面向對象:二進制程序 

            格式:chmod u+s file  、 chmod 4### file

            作用:用戶發起進程訪問文件時,不在是以用戶自己的身份來訪問,而是以進程屬主的身份來訪問。        

            應用場景:passwd 所有用戶都需要執行的二進制程序,直接給管理員的程序,不用單獨給某些用戶添加加權限。

             -rwsr-xr-x. 1 root root 30768 11月 24 2015 /usr/bin/passwd   —–此時我們就是以passwd的數主roor身份運行,而不是當前用戶的身份。

        sgid

             面向對象:文件、目錄

            格式: chmod g+s file | dir   、 chmod 2### file | dir

             作用:

                    目錄:用戶在該目錄下創建文件時,文件的屬組不在是以自己的身份創建,而是以該目錄數組的身份創建。

                    文件:用戶發起進程訪問文件時,不在是以用戶自己的身份來訪問,而是以進程屬組的身份來訪問。

             應用場景:

                    目錄:比如組內同事,以某一特定的權限共享將一些文件或目錄給大家,這樣避免單獨給多個文件分別設置權限。

        sticky

            面向對象:目錄 

            格式:chmod o+t dir   、chmod 1### dir

            作用:用戶在該目錄下可以自由的創建改文件,但是不能刪除非自己創建的文件

            應用場景:/tmp 所有用戶都可以編輯,但是不能刪除別人的文件

    注意:在給文件添加uid gid sticky位后,如果對應的位為S或T,則表示該文件之前具有x權限,如果對應的對時s或t,則表示文件沒有x權限。

三、訪問控制列表

        通常我們訪問文件時,是以屬主、屬組或其他的身份訪問的,當我們想單獨給某一個用戶設定權限時,可通過ACL訪問控制列表來進行設置。

        相關命令:setfacl 、getfacl 、mask

        setfacl:

                選項:

                    -Rm(遞歸指定權限):u(指定用戶):user1(用戶名):rwx(權限) dir   

                    -x(取消權限):g(指定組) file | dir

                    -M file.txt  file|dir –>   文件格式:u:wang:0         指定文件中用戶或組acl權限
                                                                    u:wangcai:rw
                                                                    g:it:rw

                     -X file.txt file|dir                                                   取消文件中用戶或組acl權限

                    -x:d:u:user:rwx                                            對新建的文件具有的acl權限

                    -b file | dir:清除所有acl權限

                    -k file | dir:清除默認acl權限

                    –set選項會吧原有的acl項都刪除,用新的替代,需要注意的時一定要包含ugo的設置,不能像-m一樣添加acl就可以    

                            setfacl –set u::rw,u:wang:rw,g::r,p::- file1                    

    

    getfacl file | dir:查看文件或目錄的acl權限

    getfacl -R dir > acl.txt    將dir目錄及其子目錄的acl權限記錄到acl.txt文件中

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

       mask:是在指定給某些用戶或者組設置ACL權限時,針對除了屬主和other之外的人,其中
包括屬組和添加ACL的用戶和組,限制了他們的權限,不能超過mask的權限,mask在使用時需要注意的是,當我們設置了ACL權限時,如果設置組的權
限chmod g=rw file|dir,等同于設置了mask的權限,此時所有設置了ACL權限的人和文件或目錄的數組都會改變。

       ACL文件上的group權限是mask 值(自定義用戶,自定義組,擁有組的最大權限) ,而非傳統的組權限,改變group權限,mask也會變。
       默認ACL權限給了x,文件也不會繼承x權限,這就是為什么針對file文件給user1用戶指定rwx權限時,我們getfacl file查看mask權限為rw-的原因。

        mask的設置方法:setfacl -m m::rw file

                                    setfacl -m mask::rwx file

    當我們通過tar命令打包文件時,是不能像cp -p|-a 一樣保存元數據屬性,我們可以采取如下備份和恢復訪問控制列表的方法:

            getfacl -R /tmp/dir1 > acl.txt
            setfacl -R -b /tmp/dir1
            setfacl -R –set-file=acl.txt /tmp/dir1
            getfacl -R /tmp/dir1

     設定文件特定屬性
            chattr +A 鎖定不能修改時間
                       -A 解鎖
                      +i 不能更改刪除改名 只能讀
                      +a 只能修改內容
            lsattr 顯示特定屬性(chattr都設置了那些屬性)

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

(0)
NarutoNaruto
上一篇 2016-08-08
下一篇 2016-08-08

相關推薦

  • 記事本操作的小小小技巧

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/140063       大家在查看文本文件的時候,如果內容很多,想快速到達某一位置可能比較麻煩,這時如果按住shift,再點擊右側…

    Linux干貨 2015-03-26
  • M25初嘗試部署RAID磁盤陣列組

    在學習了linux系統管理硬盤設備的基礎后,現在嘗試部署RAID10硬盤組技術,在部署前我們先了解一下什么叫“RAID”磁盤冗余陣列(Redundant Array of Independent Disks)。 RAID技術就是把多塊硬盤設備組合成一個容量更大、更安全的硬盤組,可以把數據切割成多個區段后分別存在各個不同物理硬盤設備上,然后利用分散讀寫需求賴提…

    2017-07-12
  • N25 – week 3 blog

    本周的blog開始使用了代碼語言格式,我原本以為自然的才是最好的,orginal的才是最美的,但是我錯了。。。我發現同學們都在各種markdown,各種排版。我說過我早已過了care這些的年紀,但是我不能脫離群體單獨存在,所以我底下了傲嬌的頭。 本周開始blog標題改為英文,逼格滿滿,麥滿分~ 下面開始第$wk_num周的作業 [root@dhcp-10-1…

    Linux干貨 2016-12-19
  • Linux文本三劍客之grep

    一、定義:                 GREP  :Global search REgular expression and Print out the line的縮寫。是一種強大的文本搜索工具,根據用戶指定的“模式”對目標文本逐行進行匹配檢查;并把匹配的行打印出…

    Linux干貨 2016-04-05
  • Ansible_variable

    Ansible變量        系統自動化讓重復的工作變得更加容易,但是每個系統還是有一些細微的差別,變量就是如何處理系統之間的不同之處。這里將會列出變量的極大部分使用方法。   本文假設:你已經知道如何使用Ansible。知道inventory,facts等概念。   Ans…

    Linux干貨 2015-11-26
  • ssh+rsync批量管理,批量分發

    現在我簡單架設了一個7臺服務器的集群集體如下,架設集群的過程我就省略了… [nfs存儲一臺]192.168.42.10[負載均衡2臺]192.168.42.40192.168.42.41[web服務器2臺]192.168.42.30192.168.42.31[備份1臺]192.168.42.20[mysql 1臺]192.168.42.50 我現…

    Linux干貨 2017-04-22
欧美性久久久久