Linux用戶、組和權限管理(二)

上一篇將一些用戶和組管理命令寫完,接下來是權限管理


權限管理

  每一個目錄或文件都有相應的權限位來限制用戶是否有權限可以"使用"


  進程安全上下文:

    進程對文件的訪問權限應用模型:

      進程的屬主與文件的屬主是否相同;如果相同,則應用屬主權限;

      否則,則檢查進程的屬主是否屬於文件的屬組;如果是,則應用屬組權限;

      否則,就只能應用other的權限;


    解:當某一個用戶訪問文件時,會判斷用戶是否屬於文件屬主、屬組、其它人;依次進行判斷,對應某個權限位時,則使用其權限。


  首先看一下文件權限位對應的意義:

  [root@test7_1 sh]# ll test.txt 

  -rwxrwxrwx 1 root root 1186 Apr 16 15:22 test.txt


  rwxrwxrwx:

    左三位:定義user的權限,UID

    中三位:定義group的權限;GID

    右三位:定義other的權限


  權限:

    r:readable, 讀

    w:writable, 寫

    x:excutable,執行


    目錄:

      r:可使用ls命令獲取其下的所有文件列表;

      w: 可修改此目錄下的文件列表;即創建或刪除文件;

      x: 可cd至此目錄中,且可使用ls -l來獲取所有文件的詳細屬性信息;


    文件:

      r:可獲取文件的數據;

      w: 可修改文件的數據;

      x:可將此文件運行爲進程;


    注:目錄權限與文件權限是兩碼事。不是有目錄權限後,裏面的文件就可以讀、改等操作


  權限組合機制:

    --- 000 0

    --x 001 1

    -w- 010 2

    -wx 011 3

    r-- 100 4

    r-x 101 5

    rw- 110 6

    rwx 111 7

    簡單的來說:r=4、w=2、x=1,‘-’=0



權限管理命令

  chmod命令:

    chmod [OPTION]... MODE[,MODE]... FILE...

    chmod [OPTION]... OCTAL-MODE FILE...

    chmod [OPTION]... --reference=RFILE FILE...


  三類用戶:

    u:代表屬主

    g:代表屬組

    o:代表其它

    a: 代表所有


  (1)chmod [OPTION]... MODE[,MODE]... FILE...

    MODE表示法:

      賦權表示法:直接操作一類用戶的所有權限位rwx;

        u=rwx

        g=rwx

        o=rwx

        a=rwx


      授權表示法:直接操作一類用戶的一個權限位r,w,x;

        u+, u-:u+r、u+w、u+x,u-r...

        g+, g-:g+r...,u-r...

        o+, o-:o+r...,o-r...

        a+, a-:a+r...,a-r...


    示例:

       [root@test7_1 sh]# chmod u+w test.txt

       [root@test7_1 sh]# chmod a-w test.txt


  (2)chmod [OPTION]... OCTAL-MODE FILE...

    [root@centos7 ~]# chmod 777 anaconda-ks.cfg


  (3)chmod [OPTION]... --reference=RFILE FILE..(參考anaconda-ks.cfg權限,授權到hello文件上)

    [root@centos7 ~]# chmod --reference=anaconda-ks.cfg hello


  注意:用戶僅能修改屬主爲自己的那些文件的權限;



從屬關係管理命令:chown, chgrp


 chown命令:修改所有者和組

    chown [OPTION]... [OWNER][:[GROUP]] FILE...


    兩種方式:

      [root@centos7 ~]# chown kwang:kwang hello

      [root@centos7 ~]# chown kwang.kwang hello

    

   chown [OPTION]... --reference=RFILE FILE...

      參考一個文件所有者和組的屬性,授權到指定文件上



    選項:

      -R:遞歸修改


 chgrp命令:修改組屬性

    chgrp [OPTION]... GROUP FILE...

    chgrp [OPTION]... --reference=RFILE FILE...

    

  示例:  

    [root@test7_1 sh]# chgrp test2 test.txt


注意:僅管理員可修改文件的屬主和屬組;

 


umask:文件的權限反向掩碼

  當創建文件和目錄時,都將有反向掩碼和權限位相減爲初始權限

  文件:

    666-umask

  目錄:

    777-umask

 注意:之所以文件用666去減,表示文件默認不能擁有執行權限;如果減得的結果中有執行權限,則需要將其加1,只能用在文件上;

   umask: 022

      666-022=644

      777-022=755

 

  umask命令:

    umask:查看當前umask

    umask MASK: 設置umask

      [root@centos7 ~]# umask 022

      注意:此類設定僅對當前shell進程有效;



練習:

  1、新建系統組mariadb, 新建系統用戶mariadb, 屬於mariadb組,要求其沒有家目錄,且shell爲/sbin/nologin;嘗試root切換至用戶,查看其命令提示符;

  2、新建GID爲5000的組mageedu,新建用戶gentoo,要求其家目錄爲/users/gentoo,密碼同用戶名;

  3、新建用戶fedora,其家目錄爲/users/fedora,密碼同用戶名;

  4、新建用戶www, 其家目錄爲/users/www;刪除www用戶,但保留其家目錄;

  5、爲用戶gentoo和fedora新增附加組mageedu; 

  6、複製目錄/var/log至/tmp/目錄,修改/tmp/log及其內部的所有文件的屬組爲mageedu,並讓屬組對目錄本身擁有寫權限;



額外一個命令,可在複製文件同時設置其權限及屬主等

install命令:

  install - copy files and set attributes(複製文件和設置文件屬性)


  單源複製:

    install [OPTION]... [-T] SOURCE DEST

  多源複製:

    install [OPTION]... SOURCE... DIRECTORY

    install [OPTION]... -t DIRECTORY SOURCE...

  創建目錄:

    install [OPTION]... -d DIRECTORY...


  常用選項:

    -m, --mode=MODE:設定目標文件權限,默認爲755;

    -o, --owner=OWNER:設定目標文件屬主;

    -g, --group=GROUP:設定目標文件屬組;

    -d,:創建目錄



  示例:

    [root@centos7 ~]# install -d /sh/install

    drwxr-xr-x 2 root root 6 Mar 20 18:03 /sh/install/

    

    [root@centos7 ~]# install -m 640 -o kwang -g kwang /etc/issue /sh/

    -rw-r----- 1 kwang kwang  23 Mar 20 18:02 issue

    

    注:/etc/issue是要複製文件 /sh是複製目標路徑


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章