Linux的UGO模型

概念:

  1. 權限通常分爲讀、寫、執行
  2. 權限輻射的範圍由小及大:用戶-->組-->Other
  3. 權限三個一組(rwx),對應UGO,分別設置每個文件擁有一個所屬用戶和組,分別對應着U、G,對於既不屬於該文件所屬用戶也不屬於該用戶組的用戶的權限對應O權限

實例:

11.用戶和組:|--經過用戶來限制進程的權限,經過組來組織管理用戶.

             |--每一個用戶擁有一個uid,每一個用戶屬於一個主組,屬於一個或多個附屬組.
             |--每一個組有一個gid.
             |--每一個用戶擁有一個指定的shell.(默認是bash.)

             |--文件都有一個隸屬的用戶和組,而用戶和組存在權限,因此文件存在權限. {默認的「組和用戶」與當前操做用戶同名}
       	     |--uid :  0           root
                       1-499      系統用戶(專門爲某些服務{例如打印機}或進程準備,它們不須要登錄.)
                       500-60000  普通用戶

             |-- id passwd
             |-- /etc/passwd   /etc/shadow     /etc/group
                  用戶         加密後的密碼     組

             |-- /etc/passwd 的用戶結構(:隔開):用戶名  密碼       uid  gid  描述信息(可無)  用戶home目錄  shell 
                                                        !!表示空                                        /bin/nologin
                                                        x表明有密碼                                       /bin/flase 
                                                                                                          表示沒有shell.
             |-- /ect/group                      組名   組密碼     gid    包括的用戶
                                                      (如今不用)

             |-- who whoami w
    
     |--建立用戶:useradd nash_su  (系統自動生成的-G就是用戶名,密碼爲空.)
                |--參數: -u(這是uid) -g -G(附屬組) -d(home目錄)  -s(這是shell)
                |--passwd
         

     |--修改用戶:usermod 參數 newname oldname
                  |--參數:-l(用戶名) -u -g -G -d -L(鎖定用戶) -U(給用戶解鎖)

     |--刪除用戶:userdel nash_su     (保留家目錄)
                  userdel -r nash_su  (不保留家目錄)
    

     |--建立組: (基於部門和功能) 
                 groupadd linuxcast  
     |--修改組: groupmod -n newname oldname       group -g newgid oldgid

     |--刪除組: groupdel linuxcast 
            
     
   (修改信息能夠在 /etc/passwd /etc/shadow /etc/group 修改.但不建議這麼作)   


12.權限機制:|-- r w x  (注意目錄若是有r,w,必須有x)
             |--文件的格式(權限基於UGO模型):drwx-wxr-x nash_su traning 1024 Oct 17:28  linuxcast.net
                                             lr--rwxr-- nash_su traning 2048 Jan 13:14  hello
                                             -rwx---rw- nash_su traning 3072 Oct 15:16  index.php

             |--修改文件權限:

                  //|--先切換到當前文件或目錄.                           

                  |--修改用戶和組:|--chown 新用戶或組  文件
                                     |--chown new_username dirname    (只修改目錄權限)
                                     |--chown -R new_username dirname (遞歸地修改了目錄裏面的所有文件)
                                     |--chgrp new_grpname filename 
                                     |--chgrp -R new_grpname dirname

                  |--直接修改UGO:  |--chmod 模式 文件
                                     |-- chmod u+rw linuxcast.net     chmod -R u+rw linuxcast.net 
                                     |-- chmod go-r hello.cpp
                                     |-- chmod a-rx index.php

                                     |-- chmod 777   linuxcast.net
                                     |-- chmod 555  hello.cpp
                                     |-- chmod 111  index.php


              |--查看: ls -l linuxcast     ls -ld linuxcast.net

              |--實例:<見UGO.png>
                     groupadd traning
                     groupadd market
                     groupadd manage
                     useradd -G traning nashh_su
                     uaeradd -G tranig bob
                     useradd -G market alice
                     useradd -G market john
                     useradd -G manage steve
                     useradd -G manage david
                     
                     cd /                   //放在根目錄下,查詢您方便
                     mkdir linuxcast.net    //第一個要求
                     ls 
                     mkdir traning          //第二個要求
                     mkdir market             第...
                     mkdir manage           //第二個要求
                     ls -l
                     chgrp traning traning/                //部門對應着組,要使各部門的文件夾對應各部門:即修改組。
                     chgrp market  market/
                     chgrp mannage manage/  
                     ll                                    //查看全部文件詳細信息
                     /*那麼如今不一樣部門直接互相訪問,就是以O的權限,我們要禁止它互相訪問,取消0便可*/
                     chmod o-rx traning/
                     chmod o-rx market/
                     chmod o-rx manage/                    //完成第三個要求
                     ll

                     cd /traning/
                     mkdir nash_su
                     mkdir bob
                     ls -l
                     chown nash_su nash_su/ 
                     chown bob     bob/
                     ls -l
                     cd /market/
                     mkdir alice
                     mkdir john
                     ls -l
                     chown alice alice/
                     chown john john/
                     ls -l
                     cd /manage/
                     mkdir steve
                     mkdir david
                     ls -l
                     chown steve steve/
                     chown david david/
                     ls -l 
                    
                     chgrp traning nash_su/
                     chgrp traning bob/
                     chgrp market alice/
                     chgrp market john/
                     chgrp manage steve/
                     chgrp manege david/
                     ls -l

                     /*在生產中,權限寧願放小,不可給大,由於此處無特殊要求,因此O給他所有拿掉*/
                     chmod o-rx nash_su
                                bob
                                alice
                                john
                                steve 
                                david                                                   
                                      //完成了第四個要求,而且已經修改了他們對應的UG,以及UGO的權限


                      對於第五個要求,很顯然,同組的不一樣用戶,既然同組{G的權限默認就是r-x},那麼互相查看原本就是能夠的,
                      而O的權限以及撤銷,因此不會修改。

                                   //至此,完成第五個要求,固然還能夠ls -l 和不一樣用戶切換,看看權限生效了沒有。


13.擴展機制:
            |--默認權限:|--每一個終端(分root 和 普通用戶)存在umask: umask num(可修改) umask(不加任何參數)
                         |--dir :777-umask
                            file:666-umask

            |--特殊權限:|--suid          (passwd命令的設計:非root也能用.)       
                         |--sgid          (讓目錄下的全部文件和子目錄繼承該目錄的附屬組.)
                         |--sticky        (對同一目錄{隸屬組X}有讀寫權限的不一樣用戶{隸屬同一個組X}間的文件,僅本身可刪除)

                         |--chmod u+s  linuxcast 
                         |--chmod 4755 linuxcast
                         |--chmod g+s  linuxcast
                         |--chmod 2755 linuxcast
                         |--chmod o+t  linuxcast
                         |--chmod 1755 linuxcast

                         /*sticky的實例*/
                          groupadd testgroup 
                          useradd -G testgroup user1
                          useradd -G testgroup user2
                          cd /
                          mkdir linuxcast.net 
                          chgrp testgroup linuxcast.net 
                          ls -ld linuxcast.net 
                          chmod g+rwx linuxcast.net       //把組的權限提高上來
                          ls -ld linuxcast.net 
                             
                          chmod o+t linuxcast.net    //在centos上去掉這句,看看下面操做有什麼不一樣。{對比出真知}
                          ls -ld linuxcast.net                          
                                
                          su - user1   {寫點東西}
                          cd /linuxcast.net
                          touch user1
                          exit
                          su - user2
                          cd /linuxcast.net
                          touch user2  {寫點東西}
                          ls 
                          cat user1                  //查看沒問題
                          rm -rf user1               //發現刪除和修改不行
                                                    

            |--文件權限限制對於root沒有做用,root的權限無窮大.
相關文章
相關標籤/搜索