1. 程式人生 > >5.4Linux系統下使用者許可權管理

5.4Linux系統下使用者許可權管理

許可權管理:

  ls -l

    rwxrwxrwx:

      左三位:定義user(owner)的許可權

      中三位:定義group的許可權

      右三位:定義other的許可權

  程序安全上下文:

    程序對檔案的訪問許可權應用模型:

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

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

      否則,只能應用其它的許可權;

  許可權:

    r:readable,讀,

    w:writable,寫

    x:excutable,執行

    檔案:

      r:可獲取檔案的資料

      w:可修改檔案的資料

      x:可將此檔案發起執行為程序

    目錄:

      r:可使用ls命令獲取其下的所有檔案列表

      w:可修改此目錄下的檔案列表;即建立或刪除檔案也包括子目錄

      x:可cd至此目錄中,且可使用 ls -l來獲取 所有檔案的詳細屬性資訊

    mode:rwxrwxrwx

    ownership:user,group

  許可權組合機制:二進位制

    --- 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...
      chmod [OPTION]... OCTAL-MODE FILE...
      chmod [OPTION]... --reference=RFILE FILE...

      三類使用者:

        u:屬主

        g:屬組

        o:其它

        a:所有

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

         MODE表示法:

            賦權表示法:直接操作一類使用者的所有許可權位

              u=,g=,o=;(ugo=;可以合併)

            授權表示法:直接操作一類使用者的一個許可權位也可以是多位r,w,x

              u+,u-

              g+,g-

              o+,o-

              a+,a-

              chmod +w file

              注意w許可權只給屬主其它rx是給所有都給的許可權

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

          777

          000

          八進位制許可權位

      (3)chmod [OPTION]... --reference=RFILE FILE...

       選項:

        -R:遞迴修改許可權(用之於修改目錄許可權,同時遞迴把目錄下的子目錄或者檔案的許可權也修改了)

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

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

      chown命令:

        chown [OPTION]... [OWNER][:[GROUP]] FILE...
        chown [OPTION]... --reference=RFILE FILE...

        選項:

          -R:遞迴修改

          --reference=/path/file:以某個檔案或目錄修改另一個目錄的所屬組或所屬主

      注意:僅管理員可修改檔案的屬主和屬組

    umask:檔案的許可權反向掩碼,遮罩碼

      檔案:

        666-umask

      目錄:

        777-umask

      注意:之所以檔案用666去減,表示檔案預設不能擁有執行許可權;如果減得的結果中有執行許可權,則需要將其加1

        umask:023

          666-023=644

          777-023=754

      umask命令:

        umask:檢視當前umask

        umask MASK:設定umask

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

 

    練習:完成以下任務

      1.新建系統組mariadb,新建系統使用者mariadb,屬於mariadb組,要求其沒有家目錄,且shell為/sbin/nologin;嘗試roo切換至使用者,檢視其命令提示符

      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

      單源複製:

        nstall [OPTION]... [-T] SOURCE DEST
      多源複製  

        install [OPTION]... SOURCE... DIRECTORY
        install [OPTION]... -t DIRECTORY SOURCE...
      建立目錄:   

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

      常用選項:

        -m:設定目標檔案許可權,預設為755

        -o:設定目標檔案屬主

        -g:設定目標檔案屬組

        -d:用來建立目錄

    

    mktemp命令:建立臨時檔案或目錄

      mktemp [OPTION]... [TEMPLATE]

        常用選項:

          -d:建立臨時目錄

      注意:mktemp會將建立的臨時檔名直接返回,因此,可直接通過命令引用儲存起來

  部落格作業:使用者及許可權管理