前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用户与组管理

用户与组管理

作者头像
贾维斯Echo
发布2023-10-18 11:36:47
3070
发布2023-10-18 11:36:47
举报
文章被收录于专栏:贾维斯Echo的博客

权限管理-用户组管理

一、linux用户与组管理

  1. 什么是用户?
    • 用户是操作系统提供一种安全机制
    • 用户是权限的化身
  2. 为何要有用户? 1.划分权限,增强安全性 2.每启动一个进程都会与一个用户关联 进程-》用户-》权限(作用在文件身上)
  3. 查看用户相关信息 [root@localhost ~]# id   #查看当前用户 [root@localhost ~]# whoami   #查看当前用户是谁 [root@localhost ~]# id egon   #查看egon用户 [root@localhost ~]# who       #查看当前登录的所有用户 [root@localhost ~]# ps aux |grep [s]sh   #每一个进程都有其用户
  4. linux系统中用户角色划分
    • linux系统中用户分为管理员和其他用户
      • 管理员有最高权限
      • 其他用户根据管理员的分配拥有不同权限
    • UID与GID
      • UID用户ID,唯一表示一个系统用户的账号,UID在系统中是唯一的,相当于一个人身份证,用户名就相当于这个人的名字 ,
      • GID组ID,如果把一个操作系统看成一家公司,UID相当于这个人的员工号,GID就是他的部门编号。
      • 用户分类(约定,规范)

      centos7规定:    0         超级管理员,最高权限,有极强的破坏能力    1-200     系统用户,由系统分配给系统进程使用    201-999   系统用户,用来运行安装的程序,所以此类用户无需登录系统(动态分配)    1000+     普通常规用户,正常可以登录系统的用户,权限比较小,能执行任务有限

    • 组的概念: 主组:用户本身所在部门 附加组:为用户添加的部门
    • 用户和组的关系 一对一:一个用户可以属于一个组,用户默认就在自己的主组下 ​ 一对多:一个用户可以属于多个组,用户只有一个主组,但可以为用户添加多个附加组 ​ 多对多:多个用户可以属于多个组
  5. 超级用户
    • 默认root用户,UID和GID均为0。可以操作系统中任何文件和命令,拥有最高管理权限。
  6. 总结:
    • linux系统把文件的权限分为了三类
      • 1、属主对应的权限
      • 2、属组对应的权限
      • 3、其他对应的权限
    • 一个用户对文件的权限扫描的优先级:
      • 1、先看该用户是否是文件的属主
      • 2、在1失败的情况,再看该用户是否是文件的属组
      • 3、在2失败的情况,该用户属于其他人权限

    -rw-r--r--. 1 root egon 1149 10月 28 11:51 /etc/passwd

  7. PS: linux/Unix是一个多用户、多任务的操作系统 windows 是一个单用户多任务操作系统

二、用户与组相关文件

和用户、组相关的文件:

  • /etc/passwd #保存用户信息的文件
  • /etc/shadow #用户密码
  • /etc/group #组文件
  • /etc/gshadow #组密码 详解如下:
  1. /etc/passwd:用户信息文件

[root@zls ~]# head -1 /etc/passwd root:x:0:0:root:/root:/bin/bash ​ // /etc/passwd由 ':' 为分割符, 分为7个字段,每个字段的具体含义如下: 字段名称               注释说明 1.用户名称             //用户的账号名称 2.密码占位符         //存放账户的口令,暂用x表示,密码保存在/etc/shadow 3.用户的UID        //用户标识号 4.用户基本组GID      //组标识号 5.用户注释          //用户详细信息 6.用户家目录         //root家目录是/root普通用户家目录存在/home/username(可自定义) 7.用户登录Shell     //用户登录Linux使用的shell  #cat /etc/shells

  1. /etc/shadow:用户密码文件

[root@zls ~]# tail -1 /etc/shadow zls1:!!:16312:0:99999:7::: ​ //  /etc/shadow由 ':' 为分割符, 分为9个字段,每个字段的具体含义如下: 字段名称                       注释说明 1.用户登陆名             //用户的账号名称 2.加密后的密码            //用户密码,这是加密过的口令(未设密码时为!!) 3.最近一次密码更改时间     //从1970年到最近一次更改密码时间之间过了多少天 4.密码最少使用几天        //密码最少使用几天才可以更改密码(0表示无限制) 5.密码最长使用几天      //密码使用多少天需要修改密码(默认99999永不过期) 6.密码到期前警告期限     //密码过期前多少天提醒用户更改密码(默认过期提前7天警告) 7.密码到期后保持活动的天数 //在此期限内, 用户依然可以登陆系统并更改密码, 指定天数过后, 账户被锁定 8.账户到期时间        //从1970年起,账户在这个日期前可使用,到期后失效。 9.标志                        //保留,以备linux发展之用

  1. etc/group:组文件 [root@zls ~]# head -2 /etc/group root:x:0: bin:x:1:bin,daemon ​ // /etc/group由':' 分割, 分割为4个字段,每个字段的具体含义如下: 字段名称 1.组的名称 2.组的密码(存在/etc/gshadow) 3.组GID信息 4.仅显示附加成员,基本成员不显示
  2. /etc/gshadow: [root@zls ~]# head -2 /etc/gshadow root::: bin:::bin,daemon ​ // /etc/gshadow由 ':' 分割, 分割为4个字段,每个字段的具体含义如下: 字段名称 1.组名称 2.组密码 3.组管理员 4.仅显示附加成员,基本成员不显示
  3. /home/xxx #用户家目录
  4. /etc/skel/ #用户老家的模板 [panghu@duorou ~]$ ll -a /etc/skel 总用量 24 drwxr-xr-x.   3 root root   78 10月  6 10:14 . drwxr-xr-x. 146 root root 8192 10月 28 20:31 .. -rw-r--r--.   1 root root   18 4月   1 2020 .bash_logout -rw-r--r--.   1 root root  193 4月   1 2020 .bash_profile -rw-r--r--.   1 root root  231 4月   1 2020 .bashrc drwxr-xr-x.   4 root root   39 10月  6 10:14 .mozilla
  5. /var/spool/mail/xxx #用户邮箱文件 [panghu@duorou ~]$ ll /var/spool/mail 总用量 0 -rw-rw----. 1 chirou mail 0 10月 27 19:45 chirou -rw-------. 1 root   mail 0 10月 20 21:02 root -rw-rw----. 1 rpc    mail 0 10月  6 10:14 rpc -rw-rw----. 1 test   mail 0 9月  26 10:46 test

三、手动创建用户

  1. 准备用户信息 /etc/passwd [root@web01 ~]# vim /etc/passwd   #新加一行[root@web01 ~]# tail -1 /etc/passwdlikui:x:1004:1004::/home/likui:/bin/bash/etc/shadow /etc/shadow [root@web01 ~]# tail -1 /etc/shadow  likui:6ilevDH.FeYR2qYz9yWAIWBGKwNVJN3T4QjPZ5jEgOoRxXJ8WUCXlUR.xhlMDpMTE2j3oY/QGZTZA10.Z7q1lDL9vrofAG0:18563:0:99999:7:::[root@web01 ~]# openssl passwd -1 -salt 'i have a dream'           #制作密码Password:      #输入密码1i have aUE.0R7CD7Y8Bdh/.F1SFH.   #生成的密码​ps:openssl passwd 手动生成密码    语法格式 openssl passwd [option] passwd    选项如下:   -1:表示采用MD5加密算法        -salt:指定salt值,不不使用随机产生的salt。在使用加密算法进行加密时,及时密码一样,salt不一样,所计算出来的bash值也不一样,除非密码一样,salt值也一样,计算出来的hash值才一样。salt为8字节的字符串。
  2. 准备组信息 /etc/group [root@web01 ~]# tail -1 /etc/group  likui:x:1004:[root@web01 ~]# tail -1 /etc/gshadow  likui:6Q1ywq/DXFEnMDIhP
  3. 准备家目录
    • /home/xxx/(创建用户家目录,并且用户老家的模板/etc/skel/ 装修一下,注意权限) [root@web01 ~]# mkdir /home/likui/ [root@web01 ~]# [root@web01 ~]# chown likui.lilui /home/likui/ [root@web01 ~]# chmod 700 /home/likui/ [root@web01 ~]# [root@web01 ~]# cp -ra /etc/skel/.[!.]* /home/likui/   #装饰用户 [root@web01 ~]# chown likui.likui /home/likui/.[!.]*     #修改权限
  4. 准备邮箱
    • /var/spool/mail/xxx 用户邮箱文件

    [root@web01 ~]# touch /var/spool/mail/likui [root@web01 ~]# chown likui.mail /var/spool/mail/likui [root@web01 ~]# chmod 660 /var/spool/mail/likui

  5. 激活账号的登录 [root@aliyun ~]# ssh ;ligui@127.0.0.1 egon@127.0.0.1's password: Last login: Mon Aug 10 23:18:55 2020 from 127.0.0.1 Welcome to Alibaba Cloud Elastic Compute Service ! [egon@aliyun ~]$ whoami ligui

四、用户管理命令

用户管理命令汇总

  • useradd #添加用户
  • userdel #删除用户
  • usermod #修改用户信息

详解如下:

  1. 创建用户 [root@localhost ~]# useradd biubiu
  2. 查看用户 [root@localhost ~]# id biubiu uid=1011(biubiu) gid=1011(biubiu) 组=1011(biubiu) [root@localhost ~]# who [root@localhost ~]# whoami PS:当创建一个用户时。如果没有指定用户的主组,将会创建一个同名的组作为用户的主组。
  3. 删除用户 [root@localhost ~]# userdel user01 #删除用户user01,但不删除用户家目录和mail [root@localhost ~]# userdel -r user01 #要想删彻底,加-r选项 ​
  4. useradd 命令详解:创界用户的同时指定选项 '-u' 指定用户的UID,不能和现有ID冲突 '-g' 指定用户用户所属的主组 '-G' 指定用户附加组,用逗号隔开添加多个附加组 '-d' 指定用户家目录 '-c' 指定用户注释信息 '-M' 不建立家目录 '-s' 指定用户默认shell '-r' 创建系统账户, 没有家目录 ​ //创建zls用户,指定UID5001,基本组students 附加组sa,dba 注释信息:one newB user, 登陆的shell:/bin/bash [root@zls ~]# groupadd sa [root@zls ~]# groupadd dba [root@zls ~]# groupadd students [root@zls ~]# useradd -u 5001 -g students -G sa,dba -c "one newB user" -d /home/zls -s /bin/bash zls [root@zls ~]# tail -1 /etc/passwd zls:x:5001:505:one newB user:/home/zls:/bin/bash ​ //创建系统用户,不建立用户家目录 指定nologin使其用户无法登陆系统 [root@zls ~]# useradd mysql -M -s /sbin/nologin [root@zls ~]# useradd -r dba -s /sbin/nologin
  5. usermod命令详解 '-u'    修改用户的UID '-g'    修改用户所属的基本组GID '-G'    修改用户附加组, 使用逗号隔开多个附加组, 覆盖原有的附加组 '-a'    追加更多的附加组, 必须和-G使用: -aG 追加附加组 '-m'    家目录迁移, 必须和-d一起使用, 移动用户的家目录到新的位置 '-d'    指定用户的家目录新位置   '-c'    修改用户的注释信息 '-s'    更改用户使用的shell '-l'    更改用户登录名 '-L'    锁定用户 '-U'    解锁用户 ​ ​ [root@zls ~]# grep "zls" /etc/passwd zls:x:5001:505:2018 new student:/home/zls:/bin/bash ​ //修改用户uid,gid, 附加组, 注释信息, 用户家目录, 登录shell, 登录名 ​ //建立组,指定组gid [root@zls ~]# groupadd -g 5008 network_sa [root@zls ~]# groupadd -g 5009 devops ​ //修改用户属性 [root@zls ~]# usermod -u 6001 -g5008 -a -G 5009 -c "2019 new student" -md /zls -s /bin/sh -l zls_zls zls ​ //检查是否修改成功 [root@zls ~]# grep "zls" /etc/passwd zls_zls:x:6001:5008:2019 new student:/zls:/bin/sh ​ [root@zls ~]# id zls_zls uid=6001(zls_zls) gid=5008(network_sa) groups=5008(network_sa),503(sa),504(dba),5009(devops) ​ //验证家目录 [root@zls ~]# ll -d /zls drwx------. 2 zls_zls network_sa 4096 2014-09-23 00:13 /zls ​ ​ 锁定用户 [root@zls ~]# echo "123" |passwd --stdin zls_zls [root@zls ~]# usermod -L zls_zls //无法正常登录系统 ➜  ~ ssh zls_zls@192.168.56.11 zls_zls@192.168.56.11's password: Permission denied, please try again. ​ 解锁用户 [root@zls ~]# usermod -U zls_zls //正常登录系统 ➜  ~ ssh zls_zls@192.168.56.11 zls_zls@192.168.56.11's password: Welcome to Aliyun Esc Linux -sh-4.1$

五、组管理命令

组管理命令汇总

  • groupadd # 创建组
  • groupmod #修改组
  • groupdel #删除组
  • gpasswd #设置组密码
  • newgrp #切换主组

详解如下:

  1. 创建组 //创建基本组, 不指定gid [root@zls ~]# groupadd no_gid [root@zls ~]# tail -n1 /etc/group no_gid:x:1000: ​ //创建基本组, 指定gid为5555 [root@zls ~]# groupadd -g 5555 yes_gid [root@zls ~]# tail -n1 /etc/group yes_gid:x:5555: ​ //创建系统组,gid从201-999 [root@zls ~]# groupadd -r sys_group [root@zls ~]# tail -n1 /etc/group sys_group:x:990:
  2. 2.使用groupmod命令修改组 //-g 修改组gid [root@zls ~]# groupmod -g 1111 no_gid [root@zls ~]# tail -1 /etc/group no_gid:x:1111: ​ //-n 修改组名称 [root@zls ~]# groupmod -n active_group yes_gid [root@zls ~]# tail -1 /etc/group active_group:x:5555:
  3. 使用groupdel删除组 #删除组 [root@zls ~]# groupdel egon ​ #删除用户附加组 [root@docker ~]# id zls uid=1069(zls) gid=5005(zls) groups=5005(zls),5004(devops) [root@docker ~]# groupdel devops [root@docker ~]# id zls uid=1069(zls) gid=5005(zls) groups=5005(zls) ​ #无法删除用户基本组 [root@zls ~]# tail -n1 /etc/group network_sa:x:5008: [root@zls ~]# groupdel network_sa groupdel: cannot remove the primary group of user 'zls_zls' #只有删除用户或者用户变更基本后,方可删除该组 ​ PS: 如果一个组是一个用户的主组,那么该组不能被删除,删掉用户会默认一起删掉他的主组。 一个用户必须有一个主组 groupdel 删掉的组不能是任何用户的主组
  4. 使用gpasswd设置密码(了解) [root@zls ~]# groupadd devops [root@zls ~]# gpasswd devops Changing the password for group devops New Password: Re-enter new password:
  5. 切换用户 //切换普通用户 [root@docker ~]# su - zls
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 权限管理-用户组管理
    • 一、linux用户与组管理
      • 二、用户与组相关文件
        • 三、手动创建用户
          • 四、用户管理命令
            • 详解如下:
          • 五、组管理命令
            • 详解如下:
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档