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的权限无穷大.

原文地址:https://www.cnblogs.com/LS1314/p/8610070.html