管理Linux服务器的用户和组

一、用户和组群

1、基本概念

  • 用户名:标识用户的名称,可以是字母、数字组成的字符串,区分大小写
  • 密码:验证用户身份的特殊验证码
  • 用户标识(UID):用户的数字标识符
  • 用户主目录:用户的私人目录,也是用户登录系统后默认所在的目录
  • 登录shell:用户登录后默认使用的shell程序,默认为/bin/bash
  • 组群:具有相同属性的用户属于同一个组群
  • 组群标识(GID):组群的数字标识符

2、用户

  • 管理员(root)UID为0:系统的管理员用户。(Linux 系统的管理员之所以是 root,并不是因为它的名字叫 root,而是因为该用户的身份号码即UID的数值为 0)。
  • 系统用户UID为1~999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提 权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。(权限最小,不能登录)。
  • 普通用户 UID从1000 开始:是由管理员创建的用于日常工作的用户。

PS:在 Linux 系统中,UID 就相当于我们的身份证号码一样具有唯一性,因此可通过用户的 UID 值来判断用户身份。UID是不能冲突,管理员创建的普通用户的 UID 默认是从1000开始的(即使前面有闲置的号码)。

3、组群

  • 方便管理员的管理和用户工作的方便。
  • 具有相同特性的用户的逻辑集合。
  • 将权限赋予某个组群,组群中的成员即可自动获得此权限。
  • 在 Linux 系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。(组群的GID默认也是用1000开始编号)
  • 如果该用户以后被归纳入其他用户组,则这个其他用户 组称之为扩展用户组。

PS:一个用户只有一个基本用户组,但是可以有多个扩展用户组。

二、用户和组群的文件

1、用户账户文件

①、/etc/passwd文件:存放用户账号极其相关信息(密码除外)

  • 用户对passwd文件均有读取权限
  • passwd文件的每一行用“ : ”分隔为7个域

——————————————————————————————————
用户名 : 加密口令 : UID : GID : 用户的描述信息 : 主目录 : 命令解释器(shell)
——————————————————————————————————
(第一用户为root,后面则是系统用户)(第一用户为root,后面则是系统用户)
(系统管理员创建的普通用户)(系统管理员创建的普通用户)

字段说明
用户名 用户账号名称
加密口令 用户口令,考虑系统的安全性,不使用该字段保存口令,而用字母“x”来填充改字段,真正的密码保存在/etc/shadow文件中
UID 用户号,唯一表示某用户的数字标识
GID 用户所属的私有组号
用户描述信息 可选的关于用户全名、用户电话等描述性目录
主目录 用户的宿主目录,用户成功登录后的默认目录
命令解释器 用户所使用的shell,默认为“ /bin/bash ”

②、/etc/shadow文件:存放用户经过加密之后的口令

  • shadow文件只对root用户可读

  • shadow文件用“ : ”分隔为9个域

在这里插入图片描述

字段说明
1 用户登陆名
2 加密后的用户口令,*表示非登录用户,!!表示没有设置密码
3 从1970年1月1日起,到用户最近一次口令被修改的天数
4 从1970年1月1日起 ,到用户可以更改密码的天数,即最短口令存活期
5 从1970年1月1日起,到用户可以更改密码的天数,即最长口令存活期
6 口令过期前几天提醒用户更改口令
7 口令过期后几天账户被禁用
8 口令被禁用的具体日期(相对日期,从1970年1月1日至禁用时的天数)
9 保留域,用于功能扩展

③、/etc/login.defs文件:建立用户账户时会根据此文件的配置设置用户账户的某些选项

  
MAIL_DIR /var/spool/mail //用户邮箱目录
MAIL_FILE .mail  
PASS_MAX_DAYS 99999 //可以使用密码的最大天数。
PASS_MIN_DAYS 0 //密码更改之间允许的最小天数。
PASS_MIN_LEN 5 //可接受的最小密码长度。
PASS_WARN_AGE 7 //密码过期前发出警告的天数。
UID_MIN 1000 //用useradd命令创建用户时自动产生的最小UID值
UID_MAX 60000 //用useradd命令创建用户时自动产生的最大UID值
GID_MIN 1000 //用groupadd命令创建用户时自动产生的最小GID值
GID_MAX 60000 //用groupadd命令创建用户时自动产生的最大GID值
USERDEL_CMD /usr/sbin/userdel_local //如果定义的话,将在删除用户时执行,以删除相应用户的计划作业和打印作业等
CREATE_HOME yes //创建用户账户时是否为用户创建主目录

2、组群文件

①、/etc/group文件:存放用户的组账户信息

  • 该文件的内容任何用户都可读取
  • 每个组群账户在group文件中占一行,用“ : ”分隔为4个域

——————————————————————————————
组群名称 : 组群口令(一般为空,用x占位): GID : 组群成员列表
——————————————————————————————

  • 族群成员列表中如果有多个用户账户属于同一个组群,各成员之间用“ , ”隔开
    (root的GID为0,没有其他组成员)(root的GID为0,没有其他组成员)
    在这里插入图片描述

②、/etc/gshadow文件:存放组群的加密口令、组管理员等信息

  • 该文件只有root用户可以读取
  • 每个组群账户在该文件占用一行,用“ : ”分隔为4个域

——————————————————————————————————
族群名称 : 加密后的组群口令(没有就用 ! ): 组群的管理员 : 组群成员列表
——————————————————————————————————
在这里插入图片描述
在这里插入图片描述

一、useradd 命令 ——创建新的用户

  • useradd [选项] 用户名

  • 默认的用户家目录会被存放在 /home 目录中

  • 默认的shell解释器为 /bin/bash

  • 默认创建一个与该用户同名的基本用户组

在这里插入图片描述
PS:默认设置可以根据命令参数自行修改
在这里插入图片描述

参数作用
-D 改变新建用户的预设值
-c 添加备注文字
-d 新用户每次登陆时所使用的家目录
-e 用户终止日期,日期的格式为YYYY-MM-DD
-f 用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1
-g 指定用户对应的用户组
-G 定义此用户为多个不同组的成员
-m 用户目录不存在时则自动创建
-M 不建立用户家目录,优先于/etc/login.defs文件设定
-n 取消建立以用户名称为名的群组
-r 建立系统帐号
-u 指定用户id
-s 指定该用户的默认shell解释器

实例:
①、不创建家目录,并且禁止登陆:

useradd -M -s /sbin/nologin linux
  • 1

PS:用户的解释器被设置为nologin,则代表该用户不能登录到系统中
在这里插入图片描述
②、添加新用户user1,指定UID为888,指定归属用户组为root,user1成员,其shell类型为/bin/sh:

useradd -u 888 -s /bin/sh -G root,user1 user1
  • 1

二、userdel命令 ——删除用户

  • userdel [选项] 用户名
  • 在执行删除操作时,该用户的家目录默认会保留下来,可以使用-r参数
  • 要删除一个账户,也可以直接删除/etc/passwd和/etcc/shadow文件中要删除的用户所对应的行

在这里插入图片描述

参数作用
-f 强制删除用户账号
-r 删除用户主目录及其中的任何文件

三、usermod命令——修改用户属性

  • usermod [选项] 用户名
  • Linux 系统中的一切都是文件,因此在系统中创建用户也就是修改配置 文件的过程
  • 用户的信息保存在/etc/passwd 文件中,可以直接用文本编辑器来修改其中的用 户参数项目

在这里插入图片描述

  • 将用户user1加入到root用户组中,这样扩展组列表中会出现root用户组的字样,而基本组不会受到影响
  
-c<备注> 修改用户账号的备注文字
-d<登入目录> 修改用户登入时的目录
-e<有效期限> 修改账号的有效期限
-f<缓冲天数> 修改在密码过期后多少天即关闭该账号
-g<群组> 修改用户所属的群组
-G<群组> 修改用户所属的附加群组
-l<账号名称> 修改用户账号名称
-L 锁定用户密码,使密码无效
-s 修改用户登入后所使用的shell
-u 修改用户ID
-U 解除密码锁定

四、groupadd命令——创建一个新的工作组

  • groupadd [选项] 群组名
  • 新工作组的信息将被添加到系统文件中。

在这里插入图片描述

  
-g 指定新建工作组的id
-r 创建系统工作组,系统工作组的组ID小于500
-K 覆盖配置文件“/ect/login.defs”
-o 允许添加组ID号不唯一的工作组

五、groupdel命令——删除指定的工作组

  • groupdel [选项] 群组名
  • 删除的组群是某个用户的主组群,则不能被删除

在这里插入图片描述

六、groupmod命令——更改群组识别码或名称

  • groupmod [选项] 群组名
  
-g 设置欲使用的群组识别码
-o 重复使用群组识别码
-n 设置欲使用的群组名称

七、passwd命令——修改用户密码、过期时间、认证信息等

  • passwd [选项] 用户名
  • 普通用户只能使用 passwd 命令修改自身的系统密码,而 root 管理员则有权限修改其他所有人的密码
  • root 管理员在 Linux 系统中修改自己或他人的密码时不需要验证旧密码
  • root 管理员可以修改其他用户的密码,就表示完全拥有该用户的管理权限

在这里插入图片描述
修改其他人密码时,需要具有root管理员权限
在这里插入图片描述

  
-d 删除密码
-l 锁定用户密码,无法被用户自行修改
-u 解开已锁定用户密码,允许用户自行修改
-e 密码立即过期,下次登陆强制修改密码
-k 保留即将过期的用户在期满后能仍能使用
-S 查询密码状态

在这里插入图片描述

八、chage命令——修改帐号和密码的有效期限

  • chage [选项] 用户名
  
-M 密码保持有效的最大天数
-W 用户密码到期前,提前收到警告信息的天数
-E 帐号到期的日期,会禁止此帐号
-d 上一次更改的日期
-l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

九、禁用和恢复用户账户

1、使用passwd命令

passwd -l user1
passwd -u user1

2、使用usermod命令

usermod -L user1
usermod -U user1

3、直接修改用户账户配置文件
可以将/etc/passwd文件或/etc/shadow文件中关于user1账户的passwd域的第一个字符前面加上一个“ * ”,达到禁用账户的目的,在需要恢复的时候删除字符“ * ”即可。

posted @ 2020-11-09 18:19  SPONGEBOB-Cx330  阅读(476)  评论(0编辑  收藏  举报