Linux普通權限及特殊權限講解

1.文件權限

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

                                       owner:屬主,u

                                       group:屬組,g

                                       other:其他,o

每個文件針對每個類定義了三種權限:

                                       readable: r

                                       writable: w

                                       excutable:x

三種文件權限:

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

                                       w: 可修改其內容

                                       x: 可以把此文件提請內核啟動為一個進程

三種目錄權限: 

                                       r: 可以使用ls查看此目錄中文件列表 

                                       w: 可在此目錄中創建文件,也可刪除此目錄中的文件 

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

                                       X:只給目錄x權限,不給文件x權限

2.目錄權限:

      [root@iZ11yrfw9g3Z ~]# ll -d luyubo

     drwxr-xr-x 2 root root 4096 Aug  4 13:48 luyubo

                                       d表示文件類型

                                       rwxr-xr-x 每三個一組

                                       rwx表示所屬用戶權限

                                       r-x表示所屬組的權限

                                       r-x表示其他用戶權限

                                       2表示引用連接數

                                       root表示所屬用戶

                                       root表示所屬組

                                       4096表示文件大小

                                       Aug  4 13:48表示時間

                                       luyubo表示目錄

3.chmod命令:

    用法:chmod [選項]… 模式[,模式]… 文件…

   或:chmod [選項]… 八進制模式 文件…

   或:chmod [選項]… –reference=參考文件 文件…

    修改一類用戶的所有權限: u=  g= o= ug=  a= u=,g= 

    修改一類用戶某位或某些位權限 u+  u- g+ g- o+ o- a+ a- + 

 將每個文件的模式更改為指定值。

                                       -c, –changes類似 –verbose,但只在有更改時才顯示結果

                                       –no-preserve-root不特殊對待根目錄(默認)

                                       –preserve-root禁止對根目錄進行遞歸操作

                                       -f, –silent, –quiet去除大部份的錯誤信息

                                       -v, –verbose為處理的所有文件顯示診斷信息

                                       –reference=參考文件使用指定參考文件的模式,而非自行指定權限模式

                                       -R, –recursive以遞歸方式更改所有的文件及子目錄

                                       –help          顯示此幫助信息并退出

                                       –version顯示版本信息并退出

                                  chown 設置文件的所有者 

                                [root@localhost ~]# chown luyubo luyubo

4.chgrp命令使用方法

用法:chgrp [選項]… 用戶組 文件…

 或:chgrp [選項]… –reference=參考文件 文件…

將每個指定文件的所屬組設置為指定值。

                                       如果使用 –reference            則將每個文件的所屬組設置為與指定參考文件相同。

                                       -c, –changes類似 –verbose,但只在有更改時才顯示結果

                                           –dereference影響符號鏈接所指示的對象,而非符號鏈接本身(默認值)

                                       -h, –no-dereference會影響符號鏈接本身,而非符號鏈接所指示的目的地

                                         (當系統支持更改符號鏈接的所有者時,此選項才有用)

                                           –no-preserve-root         不特殊對待"/"(默認值)

                                           –preserve-root不允許在"/"上遞歸操作

                                       -f, –silent, –quiet去除大部份錯誤信息

                                           –reference=RFILE使用參考文件的所屬組,而非指定值

                                       -R, –recursive         遞歸處理所有的文件及子目錄

                                       -v, –verbose          為處理的所有文件顯示診斷信息

chgrp 設置文件的屬組信息

[root@localhost ~]# chgrp luyubo luyubo

5.默認權限介紹

                                       umask值 可以用來保留在創建文件權限 

                                       新建FILE權限: 666-umask 如果所得結果某位存在執行(奇數)權限,則將其權限+1

                                       新建DIR權限: 777-umask

                                       非特權用戶umask是 002   權限是:775

                                       root的umask 是 022      權限是:755

                                       因為root權限太大,風險是很大的,所以默認權限是低于普通用戶的

                                       umask: 查看當前mask值  #執行結果是:022

                                       umask #: 例如 umask 023   權限是754

                                       umask –S 模式方式顯示  #大s以字母方式顯示

                                       umask –p 輸出可被調用  #執行結果是:umask 022

                                       全局設置: /etc/bashrc 用戶設置:~/.bashrc

6.Linux文件系統上的特殊權限

   1.SUID,SGID,Sticky 

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

       安全上下文

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

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

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

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

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

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

   (c) 應用文件“其它”權限

    2.SUID:

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

2.啟動為進程之后,其進程的屬主為原程序文件的屬主 

3.SUID只對二進制可執行程序有效 

4.SUID設置在目錄上無意義

權限設定: chmod u+s FILE… chmod u-s FILE…

例如:設置二進制程序echo的屬主權限

       [root@localhost ~]# chmod u+s /bin/echo

   3.SGID:

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

       2.啟動為進程之后,其進程的屬主為原程序文件的屬組

       3.權限設定: chmod g+s FILE… chmod g-s FILE…

        例如:設置二進制程序echo的屬組權限

       [root@localhost ~]# chmod g+s /bin/echo

       4.SUID:user,占據屬主的執行權限位 s:屬主擁有x權限 S:屬主沒有x權限

   4.目錄SGID:

       1.默認情況下,用戶創建文件時,其屬組為此用戶所屬的主組 

       2.一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此 目錄中創建的文件所屬的組為此目錄的屬組

       3.通常用于創建一個協作目錄

       4.權限設定: chmod g+s DIR… chmod g-s DIR…

       例如:設置/data/testdir/目錄內所有新建文件為g1組。  

      [root@localhost data]# chgrp g1 testdir/
      [root@localhost data]# chmod g+s testdir/

       5.SGID:group,占據屬組的執行權限位 s:group擁有x權限 S:group沒有x權限 

   5.Sticky位:

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

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

       3.sticky設置在文件上無意義 

       4.權限設定: chmod o+t DIR… chmod o-t DIR…

       5.例如:我們bo目錄加上t權限:

    [root@localhost home]# chmod o+t bo/
    [root@localhost home]# ll -d bo/
    drwxrwxrwt 2 root root 4096 8月   4 20:58 bo/

     切換用戶至tom嘗試刪除目前內的文件是沒有權限,但是我們的權限是777,這就是sticky的作用

      6.Sticky: other,占據other的執行權限位 t: other擁有x權限 T:other沒有x權限

7.文件特定屬性

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

      2.chattr +a 只能增加 

      3.lsattr 顯示特定屬性

8.訪問控制列表acl

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

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

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

     4.CentOS7.X之前版本,默認手工創建的ext4文件系統無ACL功能。需手動增加:tune2fs –o acl /dev/sdb1 mount –o acl /dev/sdb1  /mnt

     5.ACL生效順序:屬主,自定義FACL屬主,屬組,自定義FACL屬組,其他人

     6.ACL命令:

            getfacl 查看acl

            setfacl -x刪除權限

            setfacl -b徹底清空文件上面的acl

            setfacl -d設置默認acl權限,新建文件生效

            setfacl -k刪除設置默認acl權限

            setfacl -m u:::rw file設置所有者權限

            setfacl -m m:::rw file設置mask 權限

            設置mask,只影響除所有者和other,其他權限不能比mask高,或者相等 

            設置acl之后  所屬組權限就不是組權限了,就是mask權限了 

     7.ACL文件上的group權限是mask 值(自定義用戶,自定義組 ,擁有組的最大權限),而非傳統的組權限 

     8.getfacl 可看到特殊權限:flags 

     9.默認ACL權限給了x,文件也不會繼承x權限。 ?base ACL 不能刪除

     10.setfacl -k  dir 刪除默認ACL權限 

     11.setfacl -b file1清除所有ACL權限 

     12. mask只影響除所有者和other的之外的人和組的最大權限 Mask需要與用戶的權限進行邏輯與運算后,才能變成有限的權限 (Effective  Permission) 用戶或組的設置必須存在于m  ask權限設定范圍內才會生效。 setfacl -m mask::rx file

     13. –set選項會把原有的ACL項都刪除,用新的替代,需要注意的 是一定要包含UGO的設置,不能象-m一樣只是添加ACL就可以. 

       例如:

            [root@localhost home]# setfacl --set u::rw,u:tom:rw,g::r,o::- bo/

9.備份和恢復ACL 

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

       [root@localhost data]# getfacl -R testdir/ > acl.txt
       [root@localhost data]# setfacl -R -b testdir/
       [root@localhost data]# setfacl -R --set-file=acl.txt testdir/
       [root@localhost data]# getfacl -R testdir/

原創文章,作者:鬧鐘哥,如若轉載,請注明出處:http://www.www58058.com/29302

(0)
鬧鐘哥鬧鐘哥
上一篇 2016-08-05
下一篇 2016-08-05

相關推薦

  • Selinux的基本命令及練習

    配置SELinux 相關命令:       getenforce: 獲取selinux當前狀態       sestatus :查看selinux狀態      &nbs…

    學員作品 2016-09-19
  • 文本處理工具sed及文本編輯器vim課程作業

    文本處理工具sed課程作業     1、刪除/etc/grub2.conf文件中所有以空白開頭的行行首的空白字符         sed -n 's@^[[:space:]]\+@@p' /etc/grub2.cfg &…

    學員作品 2016-08-10
  • vim 作業

    4、如何設置tab縮進為4個字符?  vi/vim中,可以通過在~/.vimrc中添加set ts=4 執行source ~/.vimrc 重讀配置文件 5、復制/etc/rc.d/init.d/functions文件至/tmp目錄;替換/tmp/functions文件中的/etc/sysconfig/init為/var/log; 拓展模式下: &…

    學員作品 2016-08-15
  • 馬哥教育網絡班20期-第九周課程作業

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash nologinsum=$(awk -F: '$NF~/\/sbin\/nologin$/{print $1}'&n…

    學員作品 2016-09-08
  • Linux進程查看和管理及作業控制

    在linux系統中,內核的功用有:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等,在這眾多的模塊中,進程管理是相對重要的一環,即使不像文件系統和網絡功能那么復雜。在進程管理中,內核對進程的創建、切換、撤銷和調度都有很詳細的定義。  1、進程類型     守護進程:在系統引導過程中啟動的進程,跟終端無關的進…

    學員作品 2016-11-14
  • 馬哥教育網絡班20期-第七周課程作業

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;     ]#mke2fs -t ext4 -b 2048 -L MYDATA -m&n…

    學員作品 2016-09-07

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-07 23:36

    可以嘗試著寫清楚特殊權限的實際應用場景,這才是我們學習特殊權限的意義所在。

欧美性久久久久