一、Linux用户、组的概念

 1.用户 

     管理员:root,0

     其他用户:1-65535

         系统用户:1-499,守护进程获取资源进行权限分配

         普通用户:500+,交互式登陆

 2.组 

   管理员组:root,0

   其他用户:1-65535

        系统用户组:1-499

        普通用户组:500+

   note:关于uid,gid的范围可以参考/etc/login.def

 3.Linux安全上下文

       进程所能够访问的所有资源的权限取决于进程的发起者,如head -5 /etc/shadow,

     这个命令,root及chen两个用户执行的结果是不一样的

image.png

二、Linux用户/组的相关文件

   1./etc/passwd:存储用户属性信息,包含下面7个字段

        account: 账号名称;password:用户密码占位符;UID:用户ID;GID:组ID;GECOS:用户信息;directory:用户家目录;shell:用户登陆shell;

   2./etc/group:存储组及属性信息,包含下面4个字段

        group_name:组名称;passwd:用密码;GID:组的ID;user_list:哪些用户属于这些组

   3./etc/shadow:存储用户密码属性信息,包含下面9个字段

     login_name:用户名称;encrypted password:用户加密后的密码;

     date of last password change:指一次修改密码跟1970/1/1号的累加天数

     minimum password age:密码最短使用期限,若2的话指必须两天才能修改密码,0表示随时可以改密码

     maximum password age:密码最长使用期限,默认为99999,表示用户密码永远不会过期

     password warning period:表示密码过期前多少天开始报警,默认为7,指密码过期前7天会提醒用户

     password inactivity period:用户的非活动期限,期间用户只要一登陆系统就会被要求修改密码,过了这段时间若还没修改密码,密码则会过期

     account expiration date:账号过期时间,只要过了这个时间点用户就能再使用用户了

     reserved field:预留字段,以备将来使用

   4./etc/gshadow:存储组密码属性信息,

     group_name:组名称;encrypted password加密密码;设置有管理权限的用户列表: 调协组成员列表

   

三、Linux用户/组相关的命令:

   1.useradd option login

   常用参数:

        -u:用户uid

        -g:基本gid

        -c:用户其信息

        -G:用户附加组信息,一个用户可以有多个附加组

        -d:用户家目录

        -s:用户shell

        -r:创建系统用户

note:useradd -D会修改 /etc/default/useradd的数据,-D并不能直接应用于用户

image.png

   2.groupadd [options] group

      常用参数:

         -g:指定GID

         -r:创建系统组

   3.usermod [options] login

       常用参数:

          -u:新uid

          -g:新基本gid

          -G:新的加附组,组必须先存在。默认情况下会覆盖原来组,若要保留原有的组则在要结合-a一起使用,即为append

          -c:新注解信息

          -d:用户家目录,需要结合选项-m一起使用,否则不会将家目录原有所有的文件移到新家目录下

          -s:shell名称

          -l:新的名称,不会改变家目录

          -L:lock指定用户,即密码过期,用户将不能登陆系统

          -U:unlock指定用户

          -e:账号过期时间,用户将不可用

          -f:非活动限期

image.png

   4.passwd option username

      常有参数:

         -l:锁定账号,密码过期,系统将不可用

         -u:解锁账 号

         -n mindays:最短使用期限

         -x maxdays:最长使用期限

         -w:密码过期前多少开始告警

         -i:非活动限期

         -e:使账号密码过期,账号登陆后需要修改密码

    image.png

 

   5.id [option] user

        -u:uid

        -g:gid

        -G:附加ID

        -n:跟-ugG一起使用,只显示用户名称 

       

        -r:跟-ugG一起使用,只显示用户ID

       image.png

       

  6.su [option] user:

      su:非完全切换,不会读取用记的配置文件(较少使用)

      su -:完全切换,会读取用户的配置文件(经常使用)

      参用参数:

      -c:在切换时执行命令,如下,

      -l:同-,为完全切换

      image.png

  7.userdel [option] login:

     常用参数:

       -r:删除用户家目录

  8.groupmod [option] group:

       -n group_name:新名称,文件名称会随名称变化而变化

       image.png

       -Gid:新Gid,当gid变化后gid不会随着改变

      image.png

  

  9.groupdel group_name

  10.gpasswd [option] group

     常用参数:

       -a:将用户添加到某组中

       -d:将某用户从某组中移除

       -A:设置管理权限列表

四、Linux权限管理

    1. 权限的针对三类对象

       linux主要对三类对象进行定义:

       owner:属主u

       group:属组g

       other:其他o

    2. 针对每类对象定义三类权限

            r:Readable

            w:writable

            x:excutable

       文件:

            r:可读取文件中的内容

            w:可编辑文件中的内容

            x:可把此文件提请为内核的一个启动进程

        目录:

           r:可以使用ls列出目录下面的内容

           w:可在目录下创建、删除文件

           x:可以cd到目录里

   

    3. 权限的数值转换    

        --- 000 0

        --x 001 1

        -w- 010 2

        -wx 011 3

        r-- 100 4

        r-x 101 5

        rw- 110 6

        rwx 111 7

        

    4. chmod

       chmod [OPTION]... MODE[,MODE]... FILE:即chmod u+x test.txt

       chmod [OPTION]... OCTAL-MODE FILE:即chmod 755 test.txt

       chmod [OPTION]... --reference=RFILE FILE:参考某文件设置权限

       常用参数:

           -R递归修改权限

          -mode:

              修改一类用户的权限:           

                u=、g=、o=、ug=、a=、go=、u=,g=

             修改一类用户的某位权限:

                u+、u-

     5. chown

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

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

       常用参数:

           -R递归修改权限

      

     6. umask:        

       File:666-umask

            note:若某类用户的权限减得的结果存在x权限,则权限+1

            image.png

       Dir:777-umask