Linux用户和用户组

用户和用户组

用户和组的相关文件

/etc/passwd:用户账户信息。
/etc/shadow:安全用户密码相关信息。
/etc/group:组账户信息。
/etc/gshadow:组密码相关信息。

  1. /etc/passwd
    # head -1 /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    帐号:密码:用户ID:组ID:描述信息:家目录:登陆shell
    区分两种shell:
            /bin/bash:可登陆shell,如果用户的shell是这个,那么该用户可以登陆到系统中
            /sbin/nologin:非登陆shell,如果用户的shell是这个,那么该用户不允许登陆到系统
    
  2. /etc/shadow
    # tail -1 /etc/shadow
    user1:!!:17609:0:99999:7:::
    登录名:加密了的密码:最后一次更改密码的日期:密码的最小年龄:最大密码年龄:密码警告时间段:密码禁用期:账户过期日期:保留字段
    
    # passwd  user1
        更改用户 user1 的密码 。
        新的 密码:
        无效的密码: 密码是一个回文
        重新输入新的 密码:
        passwd:所有的身份验证令牌已经成功更新
        
    # tail -1 /etc/shadow
    user1:$6$wsc/rBBK$OWW79QnSCO8AE/DXGhVgIxEIjEntuNTbQYH8ojqo/nuLx1CJV70FXr0aRd/81skbCl.400upXttPEXbCJCqb01:17609:0:99999:7:::
    查看用户密码相关时间
        # chage -l user1
        最近一次密码修改时间					:3月 19, 2018
        密码过期时间					:从不
        密码失效时间					:从不
        帐户过期时间						:从不
        两次改变密码之间相距的最小天数		:0
        两次改变密码之间相距的最大天数		:99999
        在密码过期之前警告的天数	:7
    
  3. /etc/group
    # head -1 /etc/group
    root:x:0:user3
    组名:密码:GID:组成员
    
  4. /etc/gshadow
    # head -1 /etc/gshadow
    root:::user3
    组名:加密密码:组的管理员:组成员
    

用户和组管理

用户

用户是用来操作系统中不同功能的身份

linux系统中用户的分类

  • 超级用户:root uid=0

  • 系统用户:不需要登陆系统,服务于应用程序,维护系统的运行 uid:1~999

  • 普通用户:可以登陆的用户 uid>=1000 1000~60000

设置创建用户默认信息 /etc/default/useradd
设置创建用户默认信息 /etc/login.defs

        MAIL_DIR  /var/spool/mail   邮箱的位置
       PASS_MAX_DAYS 99999   密码可以使用最大天数
       PASS_MIN_DAYS 0            密码使用最小天数
       PASS_MIN_LEN  5             密码的长度
       PASS_WARN_AGE 7          密码过期前的警告时间
       UID_MIN                  1000     创建普通用户的uid范围
       UID_MAX                 60000
       SYS_UID_MIN                201   创建系统用户的uid范围
       SYS_UID_MAX               999
       GID_MIN                  1000      创建普通用户的gid范围
       GID_MAX                 60000
       SYS_GID_MIN               201    创建系统用户的gid范围
       SYS_GID_MAX               999
       CREATE_HOME yes                为用户创建家目录
       ENCRYPT_METHOD SHA512    密码的加密方式

对用户的操作:新增、删除、修改、查看、设置密码

  • 查看用户信息 id

    # id root   查看指定用户的信息
    uid=0(root) gid=0(root) 组=0(root)
    # whoami   查看当前用户是谁
    root
    uid:用户标识
    gid:组标识,用户的主组(初始组)
    组:用户的所属组
    

    切换用户:

    # su -  用户名
    

    退出用户:

    # exit
    
  • 添加用户 useradd 注意:添加用户的操作只有root能操作
    语法:useradd [选项] [选项的参数] ... 用户名

    # useradd user1
    

    创建用户的时候会创建一个和用户名同名的组作为用户的主要组(初始组),同时会创建邮箱和家目录。

    • 添加用户时指定选项 man useradd

      -c 新账户的描述信息  comment
      -d 新账户的主目录   directory
             默认情况下:
                 root的家目录是/root
                 普通用户的家目录是/home
      -g 新账户主组的名称或 ID  group id   前提:组是必须存在的
      -G 新账户的附加组列表  groups  前提:组是必须存在的
      -s  新账户的登录 shell  
             要求区分两种shell:
                 /bin/bash:可登陆shell,如果用户的shell是这个,那么该用户可以登陆到系统中
                 /sbin/nologin:非登陆shell,如果用户的shell是这个,那么该用户不允许登陆到系统
      -u  新账户的用户 ID  user id
      -r   创建一个系统账户  system
      -M 不创建用户的主目录 
      
      # useradd -c "common user" user2 
      # useradd -u 2000 -d /tmp/user3 user3
      
      # tail -1 /etc/passwd
              user3:x:2000:2000::/tmp/user3:/bin/bash
                               -u     -g    -c  -d                   -s
      
  • 设置密码 passwd

    passwd:
    超级用户:可以给所有用户改密码,并且不需要提供当前密码
    普通用户:只能修改自己的密码,要求严格,并且需要提供当前密码

         用法: passwd [选项...] <帐号名称>
        -l, --lock              锁定指名帐户的密码(仅限 root 用户)
        -u, --unlock        解锁指名账户的密码(仅限 root 用户)
        -S, --status         报告已命名帐号的密码状态(只有根用户才能进行此操作)
        --stdin                从标准输入读取令牌(只有根用户才能进行此操作)
    
    # passwd  修改当前用户密码
    # passwd user1  修改指定用户密码
    
    # echo 123 |passwd --stdin user1
    更改用户 user1 的密码 。
    passwd:所有的身份验证令牌已经成功更新。
    
     # tail -1 /etc/shadow
    jim:$6$Ue8OWp/0/uutyE4K....
    用户名:加密后的密码    
    $6$:加密算法是sha512
    $1$:加密算法是md5
    
  • 删除用户 userdel

    # userdel user1   删除用户的时候不会删除用户的家目录和邮箱
    # useradd user1   能添加,但是会有提示信息
    useradd:警告:此主目录已经存在。
    不从 skel 目录里向其中复制任何文件。
    正在创建信箱文件: 文件已存在
    -r, --remove                  删除主目录和邮件池
    # userdel -r user3  
    
  • 修改用户 usermod

    语法:usermod [选项] [选项的参数] ... 用户名
                -c 修改用户的描述信息  comment
                -d 修改用户的主目录   directory              
                -g 修改用户的主组 gid  group id   前提:组是必须存在的
                -G 修改用户的附加组  groups  前提:组是必须存在的
                -a, --append GROUP            将用户追加至上边 -G 中提到的附加组中并不从其它组中删除此用户
                -s  修改用户的登录 shell  
                    要求区分两种shell:
                        /bin/bash:可登陆shell,如果用户的shell是这个,那么该用户可以登陆到系统中
                        /sbin/nologin:非登陆shell,如果用户的shell是这个,那么该用户不允许登陆到系统
                -u  修改用户 ID  user id
                -l, --login LOGIN             新的登录名称
                -L, --lock                    锁定用户帐号
                -U, --unlock                  解锁用户帐号
    
    # usermod -G user4,root  user3
    # id user3
    uid=2000(user3) gid=2000(user3) 组=2000(user3),0(root),983(user4)
    # usermod -G jim user3
    # id user3
    uid=2000(user3) gid=2000(user3) 组=2000(user3),1000(jim)
    # usermod -a -G root,user4 user3
    # id user3
    uid=2000(user3) gid=2000(user3) 组=2000(user3),0(root),1000(jim),983(user4)
    

用户和组的关系:组中可以没有用户、也可以有一个或多个用户
用户只有一个主要组,可以同时属于多个组,除了主组以外的其他组称为附属组
组的分类:从用户的角度分为
主要组:基本组 初始组 默认组
附属组:附加组

对用户组的操作:新增、删除、修改、查看、设置密码、管理组

  • 添加组 groupadd

    用法:groupadd [选项] 组
    -g, --gid GID                 为新组使用 GID
    # groupadd g1
    
  • 删除组 groupdel

    用法:groupdel [选项] 组
    # groupdel g1
    

    注意:不能删除用户的主要组,能够删除用户的附加组

  • 修改组 groupmod

    用法:groupmod [选项] 组
    -g, --gid GID                 将组 ID 改为 GID       
    -n, --new-name NEW_GROUP      改名为 NEW_GROUP       
    # groupadd it
    # tail -1 /etc/group
    it:x:2007:
    # groupmod -g 2500 it
    # tail -1 /etc/group
    it:x:2500:
    
  • 组管理 gpasswd

    gpasswd 给组设置密码 将用户添加/删除到组 设置组管理员

    用法:gpasswd [选项] 组
            -a, --add USER                      向组 GROUP 中添加用户 USER
            -d, --delete USER                   从组 GROUP 中添加或删除用户
            -r, --delete-password                  remove the GROUP's password          
            -M, --members USER,...              设置组 GROUP 的成员列表
            -A, --administrators ADMIN,...	    设置组的管理员列表
    
    • 设置组密码

      # gpasswd it
      
    • 删除组密码

      # gpasswd -r it
      
    • 向组中添加成员 root默认是组管理员

      # gpasswd -a u1 it
      
    • 向组中添加多个成员

      # gpasswd -M u2,u3 it  
      
    • 将用户从组内移除

      # gpasswd -d u2 it
      
    • 指定组管理员(管理员可以为组添加/删除成员,且可以设置组密码)

      # gpasswd -A u1 it
      
posted @ 2020-12-15 15:35  name_default  阅读(74)  评论(0)    收藏  举报