linux初步學習之用戶和用戶組及權限管理淺談

  

用戶、組:算法

多用戶:多人同時使用系統資源;        AAA:shell

                                         Authentication身份驗證
多任務:同行運行多個進程;               Authorization受權安全

                                         Account帳戶bash

 

用戶的類別:app

     管理員:rootdom

     普通用戶:ide

         系統用戶:僅用於運行服務程序;ui

         登陸用戶:系統資源的正常使用者;加密


     用戶標識:UserID, UID spa

            16bits二進制數字:0-65535

         管理員:0

         普通用戶:

             系統用戶:

                     CentOS 5, 6: 1-499

                     CentOS 7: 1-999

             普通用戶:

                     CentOS 5,6: 500+

                     CentOS 7: 1000+


      名稱解析:名稱轉換;

           解析庫: username <--> UID 

                /etc/passwd:用戶名、UID及其它屬性信息解析庫;

用戶組:

    組類別:

          管理員組

          普通用戶組:

                  系統組

                  登陸組

            組標識:GroupID, GroupID

              管理員組:0

              普通用戶組:

                  系統組:

                    CentOS 5,6: 1-499

                    CentOS 7: 1-999


                  登陸組:

                    CentOS 5,6: 500+

                    CentOS 7: 1000+


              名稱解析:groupname <--> gid 

              解析庫:/etc/group


      組類別:以用戶爲核心

           用戶的主組:基本組;

           用戶的附加組:額外組;


      組類別:根據組內容納的用戶來劃分

           私有組:與用戶名相同,且只有一個此用戶;

           公共組:組內包含了多個用戶;


      認證機制:驗正用戶的確是他所聲稱的人;

            經過對比事先存儲的,與登陸時所提供的信息是否一致;

      存儲於何處:

                  用戶的認證信息庫:/etc/shadow

                  組的認證信息庫:/etc/gshadow


          密碼:加密存放,使用單向加密機制;

          單向加密:僅能加密,不能解密;提取數據特徵碼;

          數據相同:加密結果相同;

             定長輸出:

             雪崩效應:

         算法:

             md5: message digest, 128bits

             sha1: secure hash algorithm, 160bits

             sha224

             sha256

             sha384

             sha512


       添加salt:取隨機數;


    隨機數:

    熵池:

    僞隨機數:軟件模擬產生;


     /dev/random:僅從熵池返回隨機數,隨機數耗盡時會阻塞進程;

     /dev/urandom:先從熵池返回隨機數,熵池耗盡時,則從僞隨機數生成器返回隨機數;

用戶和組的管理:

      主要以命令進行:

     組:groupadd,  groupmod, groupdel

     用戶:useradd, usermod, userdel

     認證:passwd


     組解析庫文件:/etc/group

      GRPNAME:x:GID:user1, user2, ...

      組名:密碼點位符:GID:以此組爲附加組的用戶列表,以逗號分隔

                  Eg:  nologin:x:2015:

                      storm:x:2016:


     groupadd命令:添加組

     groupadd  [選項]  group

               -g  GID:指明GIDeg:~]# groupadd -g 1005 apple

               -r, --system:系統組;


     groupmod命令:修改組信息

           groupmod [選項] GROUP

                     -g  GID 

                     -n NEW_NAME:修改組名;eg:~]# groupmod -n apple9 apple

     groupdel命令:刪除組

     groupdel [選項] GROUP


       用戶解析庫:/etc/passwd 

           name:password:UID:GID:GECOS:directory:shell

               Eg:storm:x:2016:2016::/home/storm:/bin/bash

     useradd命令:添加用戶

     useradd  [選項]  登陸名

              -c, --comment COMMENT:註釋信息,通常爲Full Name

              -d, --home  /PATH/TO/HOME_DIR:家目錄路徑;目標路徑不能事先存在,不然會有警告,不會得利skel相關的文件給用戶;

              -g, --gid GROUP:用戶的基本組組名或GID

              -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:用戶所屬的附加組列表,彼此間用逗號隔開,中間沒有空格;

              -m, --create-home:強制建立家目錄; 

              -M:不建立用戶主目錄,即便系統在 /etc/login.defs 中的設置 (CREATE_HOME) 爲 yes

              -r, --system:建立一個系統帳戶

              -s, --shell SHELL:用戶的登陸 shell 名,默認爲留空,讓系統根據 /etc/default/useradd 中的 SHELL 變量選擇默認的登陸shell

              -u, --uid UID:用戶 ID 的數字值。此值必須爲惟一的,除非使用了 -o 選項。此值必須非負,默認使用大於等於UID_MIN,且大於任何其餘用戶 ID 最小值。


    注意:建立登陸用戶時,爲其自定義的shell程序必須爲可登陸shell,且要位於/etc/shells文件中;


     useradd -D:顯示建立用戶時的默認設置;

     useradd -D  選項:設置某默認選項;


                 -e, --expiredate  EXPIRE_DATE:用戶帳號的過時期限;過時後會被鎖定;日期以 YYYY-MM-DD 格式指定

                 -f, --inactive INACTIVE:密碼過時後,帳戶被完全禁用以前的天數。表示當即禁用,-1 表示禁用這個功能。


          爲用戶提供默認配置的配置文件:

                                /etc/login.defs, /etc/default/useradd


    影子口令文件:/etc/shadow

             登陸名:密碼:最近一次的修改時間:密碼的最短使用期限:密碼最長使用期限:提早警告的天數:非活動期限:帳號的禁用日期:保留字段

           Eg:apple:$6$x0jm5KMu$N.gOtGoel2RGUsh2HaboaZr/2dECBuoZRH91MYjMvnS5lZgfXQRuOkvzOcTtNcPAE5kudAa.IBvVFTlrwckiM.:16870:0:99999:7::2019:

           密碼:$加密算法$salt$加密的密碼字符串


     usermod命令:修改帳號信息

        -c, --comment  COMMENT

            -d, --home  HOME_DIR:修改家目錄爲新的位置,但通常應該同時使用-m選項以保證原家目錄中的文件會移動到新目錄中;

        -g, --gid GROUP   eg:   ~]# usermod -g 2006 apple

        -G, --groups  GROUP1[,GROUP2,...[,GROUPN]]]:修改時會覆蓋原有的附加組;一同使用-a選項,表示爲用戶添加新的附加組;

        -l, --login  NEW_LOGIN:修改當前用戶的用戶名;

        -s, --shell  SHELL

        -u, --uid  UID


        -L, --lock:鎖定用戶的密碼。這會在用戶加密的密碼以前放置一個「!

        -U, --unlock:解鎖用戶的密碼。這將移除加密的密碼以前的「!


    userdel命令:刪除用戶帳號

    userdel [選項]  登陸名

            -r, --remove:用戶主目錄中的文件將隨用戶主目錄和用戶郵箱一塊兒刪除


    passwd命令:密碼管理命令

         passwd   [-l]  [-u  [-f]]  [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [--stdin] [username]


        (1) passwd:修改本身的密碼;

        (2) passwd  username:修改其它用戶的密碼,僅root有此權限;

      選項:

        -l:鎖定密碼

        -u:解鎖解密

        -d:清除密碼


        --stdin:從標準輸入接收密碼;

echo "PASSWORD" | passwd  --stdin  USERNAME

Eg:      ~]# echo "apple6892234" | passwd --stdin apple3

      密碼複雜度:

       (1) 不能少於8個字符;

       (2) 不能使用與過去的密碼太類似的密碼;

       (3) 應該使用四類字符中的至少三類;


    

    id命令:查看用戶相關的id信息;

     id  [OPTION]...  [USER]

          -u:僅查看uid

          -g:僅查看gid

          -G:查看所屬的全部組的ID

          -n:顯示名稱,而非ID


    su命令:switch user

      切換用戶時:

            (1) 不讀取目標用戶的配置文件(非登陸式切換,半切換);

                    su  USERNAME

            (2) 讀取目標用戶的配置文件(登陸式切換,徹底切換);

                    su  -l  USERNAME

                    su  -  USERNAME


                    -c command, --command=command:僅以指定的用戶的身份運行此處指定的命令,而不執行真正的身份切換操做;


      注意:root切換至任何其它用戶無須認證密碼;普通用戶切換至其它用戶,都須要密碼;


     gpasswd命令:爲組添加密碼


             組密碼文件:/etc/gshadow


     gpasswd [選項] group

              -a USERNAME:把用戶添加至組中;

              -d USERNAME:今後組中移除此用戶;


      newgrp命令:登陸到一個新組


      chage命令:修改用戶帳號的各類期限;


安全上下文:

進程:以某個用戶的身份運行,進程對資源的操做權限取決於它所表明的用戶;

文件:權限模型

屬主:owner

屬組:group

其它:other


權限模型生效的機制:

進程的運行者:

是否與文件的屬主相同,若是是,則以文件屬主的身份來訪問此文件;不然

是否屬於文件的屬組,若是是,則以文件屬組的身份來訪問此文件;不然

以文件的其它用戶的身份來訪問此文件;

權限管理:


文件系統文件權限:

               三類用戶:

                 屬主:owner, u

                 屬組:group, g

                 其它:other, o


權限:

r: readable,可讀

w: writable, 可寫

xexcutable, 可執行 


權限管理:


文件:

r:可獲取文件的數據;

w:可修改文件的數據;

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


目錄:

r:可以使用ls命令獲取其下的全部文件列表;但不可使用「ls -l」去獲取詳細信息,也不能夠cd至此目錄中;

w:可修改此目錄下的文件列表, 便可以在此目錄下建立或刪除文件;

x:可使用"ls -l「命令來獲取其下的文件的詳細屬性信息,也可cd至此目錄中;


rwxrwxrwx

          owner: rwx 

          group: rwx 

          other: rwx 


    權限組合機制:

        以owner爲例:

             ---      000     0

             --x      001     1

             -w-      010     2

             -wx      011     3

             r--      100     4

             r-x      101     5

             rw-      110     6

             rwx      111     7


    練習:

        rwxr-xr-x755

        rw-r--r--: 644


             750: rwxr-x---,  640: rw-r-----


   權限管理:

         ownership: 僅管理員有權限 

          改屬主:chown

          改屬組:chgrp


    mode(permission):僅屬主

chmod


chmod命令:

    做用:change file mode bits

      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...


         [apple@buck ~]$ ll /tmp 

              total 0

           drwxr-xr-x. 2 apple apple1 6 Mar 10 08:24 apple

         [apple@buck ~]$ chmod u=rw- /tmp/apple

         [apple@buck ~]$ ll /tmp

          total 0

         drw-r-xr-x. 2 apple apple1 6 Mar 10 08:24 apple

      MODE

          賦權表示法:直接操做一類用戶的全部權限位rwx

              u=

              g=

              o=

              a=


        兩類用戶權限相同:ug=, go=

       不一樣類的用戶權限不一樣:u=,g=,o=


       受權表示法:操做一類用戶一位或多位權限;

           u+, u-

           g+, g-

           o+, o-

           a+, a-


       兩類用戶權限收授機制相同:ug+, ug-, ...

       不一樣類的用戶權限不一樣:u+,g+,o+


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


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

                --reference=RFILERFILE表示參考其權限模型;


     經常使用選項:

               -R, --recursive:遞歸修改;


     chown命令:

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

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


     經常使用選項:

               -R, --recursive:遞歸修改;


     chgrp命令:

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

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


     umask:顯示或設定文件模式掩碼

        文件:

        666-umask

        目錄:

        777-umask


      說明:之因此文件用666去減,表示文件默認不能有執行權限;若是減得的結果中,u,go有執行權限時,             則須要加1


     顯示:

        umask

     設定:

        umask MASK


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

相關文章
相關標籤/搜索