linux權限管理

      今天來講講linux里面權限的問題,在linux系統中,有這么幾類權限,r,w,x,s,t這么幾類權限,系統中為什么要有權限這個東西
呢,linux一切皆文件,有些文件不想讓某些人看到,那么這個時候就需要設置文件的訪問的權限了,文件的擁有者一般都是有權力修改刪除文件的,但擁有者
以外的人未必就能刪除修改了,這是為了防止文件被陌生人破壞了,好說了這么多,今天來講講linux的權限管理相關的知識。

一個文件的信息有這么機箱,文件的屬主,屬組,文件引用的次數,文件大小,文件的創建時間和文件名

20.jpg

那么有些文件的存在那我們怎么去改變文件的屬性呢?首先我們來更改文件的所有者,和屬組的信息,下面會介紹到兩個命令chown,chgrp

修改文件的屬主chown,這個命令的目的是為了改變某一個文件的擁有者,有這么個場景,企業中有個人離職,那么新來的同事來接手這份工作,那么這時候我們就需要將文件的屬主修改,命令的具體用法如下:

       chown [OPTION]… [OWNER][:[GROUP]] FILE…修改文件的屬主

       owner:代表的就是用戶

       chown  hadoop    /tmp/passwd
21.jpg

  

  其實這個chown這個命令也是可以同時更改屬主和屬組的,中間用:分隔或者用"."分隔

        owner:group或者owner.group

        chown hadoop:xks  /tmp/issue

  22.jpg

        -R:遞歸,當我們想改某個目錄的屬主時,同時也想改目錄下的某些文件或目錄就需要用到-R來遞歸了

        chown  -R   hadoop   /tmp/testdir/

23.jpg

       還有一種用法如上所述,根據某個文件的權限來給目標文件設置相同的權限,也就是根據某個文件的權限為模版來給目標文件設置相同的權限,用法如下:

        chown [OPTION]… –reference=RFILE FILE…

        chown  –reference=/etc/shadow  /tmp/passwd

24.jpg

       chgrp修改文件的屬組,也就是修改文件的屬組,有些用戶已經在admins組里了,當那些用戶對這個文件沒有任何權限,但是他們想訪問這個文件,這時候改變文件的屬組為那些用戶所屬的組,那么這些用戶就可以訪問文件了

         chgrp [OPTION]… GROUP FILE…

         chgrp admins   /tmp/passwd

25.jpg

        chgrp和chown一樣也有-R選項這里我就不詳細闡述了用法如下

        chgrp -R  groupname  filename

26.jpg

        chgrp [OPTION]… –reference=RFILE FILE…這個用法也是跟chown一樣

27.jpg

文件權限

      

在linux系統中文件的權限主要針對三類對象進行定義的分別是owner:屬主,u;group:屬組,g;other:其他,o,一共有9個權限位,
三個一組,分別對應的屬主,屬組,其他人,如:rwxrw—-表示的就是文件的屬主擁有讀寫執行的權限,屬組擁有讀寫的權限,而其他人沒有任何權限

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

       r:readable,只讀

       w:writable:可寫

       x:excutable:可執行

這三種權限對文件和目錄分別有不同的意義,內容如下:

       文件:

       r:可以利用cat等文件查看命令,來查看文件的內容

       w:可以編輯或刪除此文件

       x:可以在命令提示符下當做命令提交給內核運行

       目錄:

       r:可以對此目錄執行ls以列出目錄下的文件,一般和x權限一起使用

       w:可以在此目錄下創建、刪除文件,也需要配合x權限一起使用

       x:可以使用cd命令切換進目錄,也可以使用ls -l查看目錄下文件的詳細信息

注意:在linux系統中,對于文件而言可以單個權限出現,但對于目錄而言吧,一般配合x執行權限來會用,否則沒有意義。

       

文件權限操作

        文件權限可以會用英文字母r,w,x來表示,也可以使用八進制的數字來表示,

        r:4

        w:2

        x:1

        rw-

     如圖

   28.jpg

          

八進制數字表示

        —  000   0

        —x 001  1

        -w- 010   2

        -wx 011  3

         r– 100  4

         r-x 101  5

        rw- 110  6

         rwx 111 7

        chmod文件權限的修改,使用此命令可以修改文件的屬主,屬組,以及其他人的權限

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

        修改三類用戶的權限

        a+,a-, +, –

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

        u=, g= ,o=

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

        u+, u-,g+,g-,o+,o-

       chmod [OPTION]… OCTAL-MODE FILE…

        chmod a+x /tmp/passwd,chmod a-r /tmp/passwd ,chmod +x /tmp/passwd,chmod -w /tmp/passwd,經過試驗在+w權限的時候三類卻不是全部+w權限,而只是屬主+w

        chmod [OPTION]… –reference=RFILE FILE…用法同chown用法一樣

        chmod  –reference=/etc/shadow     /tmp/passwd

 29.jpg

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

       umask值可以用來保留在創建文件的權限,在linux系統新建文件新建文件的默認權限是666,新建目錄的權限是777,但文件最終的實際權限是要減去umask值的,umask 從最大權限中屏蔽相應的權限,從而得出默認權限

       root的umask是022,而非特權用戶是002,我們知道了umask之后,那么我們怎么去查看umask的值呢

       umask:直接在命令行敲這條命令,會顯示當前的umask值,如果umask 后面跟了一個數值那么就是臨時設置umask值

       umask  027

       umask -S模式方式顯示,就是以具體的權限來顯示如u=rwx,g=rx,o=

       umask -p 輸出可被調用

30.jpg

        我們如果想要設置umask永久生效那么我們只能去配置文件里面去設置,分別有兩個配置文件/etc/profile全局設置,對所有用戶都會生效, 用戶設置:~/.bashrc只針對某類用戶生效

特殊權限

        特殊權限有三類:SUID,SGID,Sticky

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

        安全上下文

        有一個前提進程必須要有屬主和屬組,文件有屬主和屬組,在linux里面遵循這么一個法則,

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

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

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

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

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

               如果前兩者都不是那么就會應用其他人的權限

SUID

      

任意一個可執行程序文件能否啟動為進程,取決發起者對程序文件是否擁有執行權限,舉個例子,我們想查看某個文件的內容,那我們可以使用cat名,cat命
令的路徑,它的權限是-rwxr-xr-x. 1 root root 48568 May 11 16:59
/bin/cat,文件的屬主root對cat有執行權限那么root就可以使用cat命令,文件屬組和其他人都有權限,那么這些人都能執行cat這個命

       啟動為進程之后,期進程的屬主為原程序文件的屬主

       SUID只對二進制可執行程序有效,SUID設置在目錄上無意義,一般目錄都會有執行權限,前面講到過。那怎樣來設定SUID呢?可以使用chmod命令

        chmod u+s  filename 添加SUID權限

        chmod u-s   filename 刪除SUID權限

        chmod u+s  /tmp/passwd

        chmod u-s    /tmp/passwd

如果文件的屬主沒有執行權限那么,添加SUID之后屬主的x權限位會顯示為S,相反,如果有執行權限,那么會顯示s

SGID

        任何一個可執行程序文件能否否啟動為程序:取決發起者對程序有沒有執行權限

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

        權限的設定方法

        chmod g+s  filename

        chmod g-s    filename

31.jpg

如果文件的屬組沒有執行權限那么,添加SUID之后屬主的x權限位會顯示為S,相反,如果有執行權限,那么會顯示s

        默認情況下,用戶創建文件時,其屬組為此用戶所屬的主組一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此目錄中創建的文件所屬的組為此目錄的屬組通常用于創建一個公共目錄,那么是怎樣設定的呢,設定方法如下:

        chmod -R g+s directory

        chmod -R g-s directory

40.jpg

sticky權限

      

具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,大家都可以同時往里面寫數據,但是這樣就有個問題,可以寫就寫的權限了,那么就可以刪除文件了,自
己的文件刪除了無所謂,如果不小心把別人的文件刪了豈不是亂套了,所以這時候就要有一套機制來顯示只有root用戶和文件的屬主才能刪除自己的文件或者目
錄,無論該文件的權限或擁有權在目錄設置Sticky 位,只有文件的所有者或root可以刪除該文件,sticky
設置在文件上無意義,因為文件本身就只有root和屬主才能刪除,這樣做多此一舉。

        權限設定方法

        chmod o+t directory

        chmod o-t directory

32.jpg

特殊權限八進制數字表示法 

        SUID SGID STICKY
        000 0   沒有任何特殊權限
        001 1    只有sticky權限

        010 2    有SGID權限
        011 3    有SGID和sticky權限
        100 4    有SUID權限
        101 5    有SUID和sticky權限
        110 6    有SUID和SGID權限

        111 7    三者都有

比如:chmod   6755  /tmp/passwd表示的意思就是將/tmp/passwd設置有SUID,SGID并且屬主有讀寫執行的權限,屬組有讀執行的權限,其他人有讀執行的權限。

如果文件的屬主沒有執行權限那么,添加sticky之后其他人的x權限位會顯示為T,相反,如果有執行權限,那么會顯示t

設定特定屬性

        chattr +i 不能刪除,改名,更改內容,就算root也不能修改

        chattr -i 取消權限設定

   41.jpg

         chattr +a(append)只能追加內容

34.jpg

  

訪問控制列表

        ACL(Access Control List),實現靈活的權限管理,除了文件所有者,所屬組和其它人,可以對更多的用戶設置權限,centos7是默認創建的文件系統是支持ACL的功能,之前的6,5是默認不支持的需要手動開啟,方法如下:

        tune2fs -o acl   /dev/sdb1

        mount  -o acl /dev/sdb1 /media

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

getfacl查看文件的訪問控制列表

        getfacl  filename

    
setfacl設置訪問控制列表

         setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file …
          -m:設定訪問控制權限

        setfacl -m u:hadoop:rwx  filename

          -x:取消訪問控制權限

        setfacl -x u:hadoop filename 需要強調是再取消訪問控制權限時權限格式后面不需要帶權限

        -M:將權限的格式寫到文件里面使用-M選項來添加訪問控制權限,文件內容格式u:hadoop:rwx

        setfacl -M  1.acl  filename

        -X:與-M選項相反的意思,取消訪問控制權限,文件內容格式u:hadoop

        setfacl -X 2.acl filename

        -Rm:遞歸,給目錄下的文件及目錄設置訪問控制權限

         setfacl -Rm  u:hadoop:rwx  directory

         setfacl -m d:u:wang:rx directory 設置某個目錄下新建文件是默認wang用戶就有rx權限

         setfacl-k directory  刪除默認ACL權限

         setfacl-b filename  清除所有ACL權限

         mask只影響除所有者和other的之外的人和組的最大權限,mask需要與用戶的權限進行邏輯與運算后,才能變成有限的權限(Effective Permission)

        setfacl -m mask::rx file

36.jpg

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

(0)
fszxxxksfszxxxks
上一篇 2016-08-04 14:40
下一篇 2016-08-04 14:41

相關推薦

  • shell練習

    1 、編寫腳本/root/bin/systeminfo.sh, 顯示當前主機系統信息, 包括主機名,IPv4 地址,操作系統版本,內核版本,CPU 型 號,內存大小,硬盤大小。 運行后結果是: 2 、編寫腳本/root/bin/backup.sh ,可實現每日將/etc/ 目錄備 份到/root/etcYYYY-mm-dd中 運行結果是: 3 、編寫腳本/r…

    Linux干貨 2016-08-15
  • 邏輯卷LVM的實現

    LVM(Logical Volume Manager,邏輯卷管理)可以實現把多個實體硬盤分區整合在一起,當作一個硬盤來重新操作處理。最重要的是LVM不像傳統分區一旦確定分區大小就不能再調整,它允許我們彈性的調整分區及文件系統容量! 通過幾道練習題來說明LVM的實現 1、創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB,…

    2017-06-25
  • 學習shell scripts

    1. 為什么要學習shell編程?          許多人會問,為什么要學習shell腳本編程?我學的是linux,又不是編程,其實對于個人用戶可能用處不是很大,但是當你在為公司的成千上完的服務器做維護時,可能沒有shell編程的話可能把人累死也無法完成任務,一千臺服務器要做相…

    Linux干貨 2016-08-18
  • linux系統故障排除總結

    常見的系統故障 1.確定文體的故障特征 2.重現故障 3.使用工具收集進一步信息,確定根源在何處 4.排除不可能的原因 5.定位故障:             從簡單的問題入手      &…

    Linux干貨 2016-09-15
  • 常用的MySQL數據庫備份

    常用的MySQL數據庫備份方式 前言 為什么需要備份數據? 數據的備份類型 MySQL備份數據的方式 備份需要考慮的問題 設計合適的備份策略 實戰演練 使用cp進行備份 使用mysqldump+復制BINARY LOG備份 使用lvm2快照備份數據 使用Xtrabackup備份 總結 前言 我們試著想一想, 在生產環境中什么最重要?如果我們服務器的硬件壞了可…

    2016-10-01
  • Linux下 文件類型不同顏色的含義

    linux 文件顏色的含義 藍色代表目錄 綠色代表可執行文件 紅色表示壓縮文件 淺藍色表示鏈接文件 灰色表示其他文件 紅色閃爍表示鏈接的文件有問題了 黃色表示設備文件 藍色文件———-目錄 白色文件———-一般性文件,…

    Linux干貨 2016-10-18
欧美性久久久久