加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

【Linux进阶】用户和组的管理(详解)

发布时间:2022-10-14 10:56:43 所属栏目:Linux 来源:
导读:  本章学习目标:

  image.png

  Linux操作系统是多用户、多任务系统——即允许多个用户同时登录Linux系统并启动多个任务(有的用户是远程登陆)。用户账号和用户组是进行身份鉴定和权限控制
  本章学习目标:
 
  image.png
 
  Linux操作系统是多用户、多任务系统——即允许多个用户同时登录Linux系统并启动多个任务(有的用户是远程登陆)。用户账号和用户组是进行身份鉴定和权限控制的基础,身份鉴别的目的是规定哪些人可以进入系统,而权限控制的目的则是规定进入系统的用户能做哪些操作。
 
  多用户系统
 
  一个安装好的但是没有启动的Linux系统是静态的系统,静态的Linux系统一般由根分区上的文件、目录和交换分区组成,内容不会发生改变。而启动的Linux系统成为动态的西永,动态的Linux系统一般由根分区上的文件、目录和虚拟内存(含交换区和物理内存)中的进程组成,动态系统里的内存会时刻发生变化。
 
  zijihuade
 
  动态的Linux系统(多用户运行级别)允许已经注册的用户登录
 
  R-C.jpg
 
  所谓的多用户系统就是指一台计算机启动后,允许多个用户同时登录并使用计算机,最常见的例子就是很多用户通过网络远程登陆到一台运行Linux的计算机
 
  用户和组的概念 用户的概念
 
  有的人喜欢说“用户”,有的人喜欢说“账号”,再Linux系统中,他们是指同一个概念:使用Linux系统的人,他的信息必须事先已经在Linux系统中登记好,
 
  1648263575698-screenshot.png
 
  在Linux中,创建(即登记)一个用户时需要提供如下信息:
 
  1、用户名:也叫账号,合法的账号由AZ,az,09Linux 用户和用户组管理,-和_组成,账号长度介于132.在Linux系统中用户名是唯一的,用户名主要用于身份鉴别。
 
  2、口令:或称为密码,主要用于身份鉴别,一个好的口令最好同时包含大小写字母、数字和其他字符,长度建议大于6 注意:密码中字符的大小写是由区分的
 
  3、用户ID号:简称为UID,犹如人的身份证号,
 
  image.png
 
  image.png
 
  4、组:每一个用户只能归属于一个主要组群,但是可以同时归属于多个附加组群。给用户分组主要是便于管理同一类用户的权限,例如赋予一个组某种权限,那么这个组所有的用户自动拥有该权限
 
  image.png
 
  5、家目录:使用户登录之后默认进入的目录,如果不特别指定,用户的家目录就是/home/,例如创建用户Gremmie102,那么默认的家目录就是/home/Gremmie102。root用户的家目录有些特别,默认是/root
 
  6、登录shell:用户登录Linux的过程中,会自动执行一系列的程序,其中最后执行的那个程序成为shell程序。shell以为“壳”,可以想象为包裹在Linux系统外面的壳,用户登录之后就一直在这个壳中,用户输入的任何命令都由Shell代为执行
 
  1648268827367-screenshot.png
 
  7、备注:对用户的描述,这个可以省略
 
  这些用户信息主要保存在文件/etc/passwd中,加密过后的密码保存在文件/etc/shadow中。/etc/passwd每一行对应一个用户,格式如下。
 
  用户名:密码:UID:GID:备注:家目录:登录shell
 
  每个参数之间用“:”分开,其中的“密码”都用x来表示,GID是该用户的主要组群的组号。
 
  例如/etc/passwd文件中由如下一行:
 
  image.png
 
  从上面这一行可以获得这些信息:用户名是Gremmie3,密码的位置出现x是表示加密后的密码串错放在/etc/shadow中,用户ID号是1000,隶属主要族群1000号,用户的家目录是/home/Gremmie2003,登录Shell是bin/bash,没有备注信息。
 
  同样/etc/shadow也是一行对应一个用户,格式如下:
 
  账号:密码:最后一次更改密码的日期:密码有效期最少天数:密码有效期最多的天数:密码修改警告期:密码禁用期:账号过期日期:保留字段
 
  image.png
 
  1、密码:经过加密之后的密文。这种加密算法是不可逆的,也就是说不能从密文反推出原始密码。在用户登录校验密码时,Linux系统采用相同的加密方法对用户登录时输入的密码进行加密得到密文,然后通过比较两份密文是否相同来判断密码输入是否正确,这里图中的感叹号则表示还未设置密码
 
  2、上一次更改密码的日期:具体表现为从1970年1月1日以来的天数。例如在2022年3月26日修改过密码,那么这里就是19077.
 
  image.png
 
  3、密码有效期最少天数:即上次修改密码之后要过多少天之后才允许再次修改密码。如果为0或者空表示没有显示,即可随时修改密码。
 
  4、密码有效期最多天数:即多少天前必须修改密码,如果过了有效期最多天数还没有修改密码,那么下一次用户登录时提示用户必须修改密码;为空则表示没有限制,同时也没有密码修改警告期;如果密码有效期最多天数小于密码有效期最少天数,那么用户不能修改密码。
 
  5、密码修改警告期:即开始不断地通知用户要修改密码,如果为0或者空则不通知
 
  6、密码警用期:过了密码有效期最多天数如果仍然没有修改密码,则进入密码禁用期,在禁用期内,用户登录时要求强行修改密码。过了禁用期,那么账号就完全冻结了,冻结的账号经过解冻之后就可以继续使用
 
  7、账号过期日期:表示为从1970年1月1日以来的天数,为空则表示没有限制。账号过期之后不能再使用了。例如打算让账号在2022年3月26日失效,那么这里的值就是19077.
 
  参数之间的关系表示为:
 
  1648273557320-screenshot.png
 
  Linux系统的用户分为3类,分别是超级用户root、系统用户和普通用户。在安装系统时默认创建超级用户root,root的权力没有限制,它的UID和GID都是0.
 
  image.png
 
  超级用户的作用是管理系统,例如创建用户、给硬盘分区、配置网络等。系统用户主要用来启动服务或者用作一些特殊权限控制,系统用户的权限收到限制,系统用户也是在安装Linux或者应用软件时自动创建的,它们得到UID小于1000,系统用户不能登录。普通用户也是由超级用户root创建并分配给Linux系统的使用者,权限有限制,使用者用普通用户登录以完成他们的日常工作,普通用户的UID一般大于等于1000.
 
  image.png
 
  image.png
 
  组的概念
 
  Linux下组群的概念如下:
 
  组群.png
 
  一个用户必须且只能属于一个主要组群,但是可以属于0个或者多个附加组群,一个组群可以包含0个或者多个用户。例如我是南京医科大学的一个学生,我只能属于21生物信息班(主要族群),但我可以同时加入计算机设和音乐社(附加组群)。
 
  用户和组群的关系.png
 
  用户和组的管理
 
  用户和组的管理包括创建、删除、修改属性、修改密码等。具体操作可以采用可视化的图形界面方式,也可以采用命令方式,这里重点介绍后者。Linux下的命令语法为:
 
  “命令”是用来操纵“目标”的,那么怎么操纵呢?这是由“选项”规定的。由于可能存在多个选项,所以选项采用 “-[参数]”或者“-[参数]”的形式,例如创建用户Gremmie102的命令为:useradd -u 1007 -d /home/zbc–shell/bin/bash Gremmie102
 
  image.png
 
  命令是useradd,目标是Gremmie102,选项是-u 1007 -d /home/zbc–shell/bin/bash
 
  文件/etc/login.defs定义了组群和用户的默认属性,在创建用户和组的时候,如果没有给出相对应的参数,那么就去默认值。主要参数如下:
 
  序号参数默认值说明
 
  1
 
  PASS_MAX_DAYS
 
  99999
 
  密码有效期最多多少天
 
  2
 
  PASS_MIN_DAYS
 
  0
 
  密码有效期最少多少天
 
  3
 
  PASS_WARN_AGE
 
  7
 
  密码警告十七,密码到期前7天发出警告
 
  4
 
  PASS_MIN_LEN
 
  5
 
  密码最小长度,即密码必须多于5个字符
 
  5
 
  UID_MIN
 
  1000
 
  创建用户时默认选择的UID最小值
 
  6
 
  UID_MAX
 
  60000
 
  创建用户时默认选择的UID最大值
 
  7
 
  GID_MAX
 
  1000
 
  创建组群时默认选择的GID最小值
 
  8
 
  GID_MIN
 
  60000
 
  创建组群时默认选择的GID最大值
 
  组的管理
 
  我们可以利用groupadd --help、groupdel --help、groupmod --help来查询相关的命令说明
 
  image.png
 
  image.png
 
  image.png
 
  创建组
 
  (1)创建组群class1:groupadd class1
 
  image.png
 
  (2)创建组群grade2且指定GID为555:groupadd -g 555 grade2
 
  (3)创建已经存在的组群root的别名组群administrators:groupadd -g 0 -o administrators
 
  image.png
 
  注意:只能创建不存在的组群。新建的组信息保存在/etc/group中,可以采用more或cat命令查看,例如
 
  cat /etc/group
 
  image.png
 
  删除组群
 
  删除组群class1:groupdel class1
 
  注意:只能删除已经存在的空组群,也就是组里没有用户成员
 
  修改组群的属性 修改组群sales的组号(GID)为1650:groupmod -g 1650 sales修改组群sales的组群名为sales1:groupmod -n sales1 sales用一条命令完成上述两个任务:groupmod -g 1650 -n sales1 sales
 
  注意:只能修改已经存在的组群属性。
 
  查看组群的信息
 
  查看文件/etc/group 的内容即可,可以采用cat、more、tail等命令进行查看
 
  (1)查看文件/etc/group的末尾10行:tail /etc/group
 
  image.png
 
  (2)翻页显示/etc/group的信息:more /etc/group
 
  image.png
 
  用户管理
 
  同样,我们可以用useradd --help、userdel --help、usermod --help来查询命令信息
 
  image.png
 
  image.png
 
  image.png
 
  创建用户
 
  我们常常用到这几个选项
 
  -d, --home-dir HOME_DIR home directory of the new account
 
  -m, --create-home create the user’s home directory
 
  -g, --gid GROUP name or ID of the primary group of the new account
 
  -s, --shell SHELL login shell of the new account
 
  在你的创建的classmates中加入一个叫做bingdundun的用户
 
  useradd -m -g classmates bingdwendwen
 
  useradd -m -g classmates -s /bin/bash bingdwendwen
 
  删除用户
 
  userdel -r bingdundun 删除用户bingdundun
 
  userdel -r bingdundun 删除用户bingdundun,连同家目录一起删除
 
  userdel -f -r bingdundun 强行删除用户bingdundun ,即便此用户已经登录
 
  注意,只能删除已经存在的用户
 
  修改用户属性
 
  uesermod -d /opt/bingdundun -s /bin/tcsh
 
  修改用户的家目录和登录的shell
 
  usermod -g grade1 -G class2 -a bingdundun
 
  修改用户的主要族群为grade1,同时再加入附加组群class2
 
  usermod -l bingdundun Gremmie
 
  修改bingdundun的用户名为Gremmie
 
  usermod -u 1020 bingdundun
 
  修改用户bingdundun的UID为1020
 
  usermod -d /opt/bingdundun -s /bin/tcsh -g grade1 -G class2 -a -l Gremmie -u 1020 -m bingdundun
 
  合并上述操作
 
  用户密码管理
 
  passwd -l bingdundun
 
  锁住bingdundun,被锁的用户不能登录
 
  passwd -u bingdundun
 
  解锁后的用户可以继续登录
 
  passwd bingdundun
 
  修改bingdundun的密码
 
  注意:用户的密码只有root和用户本人可以修改
 
  passwd -d nanjinglele
 
  删除用户nanjinglele的密码,这样nanjinglele就可以不用密码直接登录了
 
  passwd -n 10 -x 20 -w 3 -i 5 bingdundun
 
  修改用户bingdundun的密码老化时间,密码有效期最少天数10,最大天数20,过期前3天会发出警告,密码禁用期5天。
 
  查看用户信息
 
  id Gremmie
 
  查看Gremmie的UID、主要组群和附加组群的GID
 
  image.png
 
  more /etc/passwd
 
  这里有个小细节,我将Gremmie放入了sudo系统组群中,这样Gremmie就可以使用sudo的权限
 
  批量添加用户
 
  for name in shueyrhonrhon nanjinglele
 
  do
 
  echo “$name is pending”
 
  useradd -m -g classmates -s /bin/bash nameecho"name echo "nameecho"name:beijing2022" | chpasswd
 
  done
 
  加了冰墩墩,也别忘了雪容融,还有南京砳砳,哈哈哈哈。写个for循环吧,因为不好passwd,这次换chpasswd来批量设置初始密码。这个命令的用法是:echo “user:password” | chpasswd
 
  遇到的一些错误
 
  切换用户时要区分好大小写,特别是登入云服务器root身份的时候
 
  image.png
 
  每一步都要打对,,哭了
 
  image.png
 
  这里我要用Gremmie的身份,用sudo的命令来雪融融的主目录创建一个Gremmie.is.visiting的文件
 
  这里-u后面应该时xuerongrong,不是Gremmie,弄混了。。。
 
  image.png
 
  这里的错误在于,组群2021bioinformatics根本不存在,原因是什么呢?
 
  我在创建组群的时候,创建成了2022bioinfomatics少了一个r。。。
 
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!