天天看點

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

上一篇将一些使用者群組管理指令寫完,接下來是權限管理

權限管理:

  每一個目錄或檔案都有相應的權限位來限制使用者是否有權限可以"使用"

  程序安全上下文:

    程序對檔案的通路權限應用模型:

      程序的屬主與檔案的屬主是否相同;如果相同,則應用屬主權限;

      否則,則檢查程序的屬主是否屬于檔案的屬組;如果是,則應用屬組權限;

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

    解:當某一個使用者通路檔案時,會判斷使用者是否屬于檔案屬主、屬組、其它人;依次進行判斷,對應某個權限位時,則使用其權限。

  首先看一下檔案權限位對應的意義:

  [[email protected]_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...

    示例:

       [[email protected]_1 sh]# chmod u+w test.txt

       [[email protected]_1 sh]# chmod a-w test.txt

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

    [[email protected] ~]# chmod 777 anaconda-ks.cfg

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

    [[email protected] ~]# chmod --reference=anaconda-ks.cfg hello

  注意:使用者僅能修改屬主為自己的那些檔案的權限;

從屬關系管理指令:chown, chgrp

 chown指令:修改所有者群組

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

    兩種方式:

      [[email protected] ~]# chown kwang:kwang hello

      [[email protected] ~]# chown kwang.kwang hello

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

      參考一個檔案所有者群組的屬性,授權到指定檔案上

    選項:

      -R:遞歸修改

 chgrp指令:修改組屬性

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

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

  示例:  

    [[email protected]_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

      [[email protected] ~]# 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,:建立目錄

  示例:

    [[email protected] ~]# install -d /sh/install

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

    [[email protected] ~]# install -m 640 -o kwang -g kwang /etc/issue /sh/

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

    注:/etc/issue是要複制檔案 /sh是複制目标路徑

轉載于:https://blog.51cto.com/waldenkk/1931329

繼續閱讀