点我

用户管理

Linux 是一个多用户、多任务的操作系统,具有很好的稳定性与安全性,在幕后保障 Linux系统安全的则是一系列复杂的配置工作。

将详细讲解文件的所有者、所属组以及其他人可对文件进行的读(r)、写(w)、执行(x)等操作,以及如何在 Linux 系统中添加、删除、修改用户账户信息。

Linux 系统的管理员之所以是 root,并不是因为它的名字叫 root,而是因为该用户的身份号码即 UID(User IDentification)的数值为 0。

在 Linux 系统中,UID 就相当于我们的身份证号码一样具有唯一性,因此可通过用户的 UID 值来判断用户身份。

关于UID号说明
UID号用户身份说明
0管理员系统的管理员用户
1-999系统用户默认服务程序会有独立的系统用户负责运行,Linux系统为了避免因某个服务程序出现漏洞而被黑客提权到整台服务器,进而可以有效控制被破坏的范围,
从1000开始普通用户由管理员创建的用于日常工作的用户

注意:UID是不能冲突的,由管理员创建的普通用户的UID默认是从1000开始的。

用户组(GID,group identification)

为了方便管理属于同一组的用户,Linux系统中引入了用户组的概念,通过使用用户组的号码,可以将多个用户加入到同一组中,从而方便为组中的用户统一规划权限或指定任务。

注意:在 Linux 系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满足日常的工作需要。

useradd

用于创建新的用户

格式: useradd [参数] 用户名

可以使用 useradd 命令创建用户账户,使用该命令创建用户账户时,默认的用户家目录会被存放在/home 目录中,默认的 Shell 解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组。

常用参数

参数作用
-d指定用户的家目录
-e账户的到期时间
-u指定用户的默认UID
-g指定一个初始的用户基本组(必须是已经存在的组)
-G指定一个或者多个扩展的用户组
-N不创建与用户同名的基本用户组
-s指定该用户的默认shell解释器

image-20250105035137844

groupadd

用于创建用户组

格式:groupadd [参数] 用户组名

为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到同一个组里面,这样便可以针对一类用户统一安排权限。

image-20250105035323755

usermod

用于修改用户的属性

格式:usermod [参数] 用户名

常用参数:

参数作用
-c填写用户账户的备注信息
-d -m参数-m与参数-d一起用,可重新指定用户的家目录并自动把旧的数据转移过去
-e账户的到期时间,格式:YYYY-MM-DD
-g变更所属用户组
-G变更扩展用户组
-L锁定用户禁止其登录系统
-U解锁用户,允许用户登录系统
-s变更默认的shell解释器
-u修改用户的UID

Linux 系统中的一切都是文件,因此在系统中创建用户也就是修改配置文件的过程。

用户的信息保存在etc/passwd 文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用 usermod 命令修改已经创建的用户信息,诸如用户的 UID、基本/扩展用户组、默认终端等。

image-20250105035947334

passwd

用于修改用户密码、过期时间、认证信息等。

格式:passwd [参数] [用户名]

普通用户只能使用 passwd 命令修改自身的系统密码,而 root 管理员则有权限修改其他所有人的密码。

root 管理员在 Linux 系统中修改自己或他人的密码时不需要验证旧密码,这一点特别方便。既然 root 管理员可以修改其他用户的密码,就表示完全拥有该用户的管理权限。

常用参数

参数作用
-l锁定用户,禁止其登录
-u解除用户,允许用户登录
--stdin允许通过标准输入修改用户的密码,如echo "new password" \passwd --stdin username
-d允许用户使用空密码登录系统
-e强制用户在下次登录时修改密码
-S显示用户的密码是否被锁定,以及密码所采用的加密算法名称

image-20250105040511271

userdel

用户删除用户

格式为:userdel [参数] 用户名

如果我们确认某位用户后续不再会登录到系统中,则可以通过 userdel 命令删除该用户的所有信息。在执行删除操作时,该用户的家目录默认会保留下来,此时可以使用-r 参数将其删除。

常用参数

参数作用
-f强制删除用户
-r同时删除用户及家目

image-20250105040802361

groupdel

删除组账户名,删除组帐号后,从/etc/group文件中将查不到相应的记录。

[root@localhost ~]# groupdel market

[root@localhost ~]# grep "market" /etc/group

注意:任何用户的基本组都不可以直接删除

用户账户文件

/etc/passwd

存储了系统中所有用户的基本信息,例如:用户名称、宿主目录、登录shell等基本信息。

image-20250215140111854

每一行代表一个用户,每行由 7 个字段组成,字段之间用冒号(:)分隔,以下是每个字段的含义:

  1. 用户名
  2. 密码占位符
  3. 用户ID
  4. 组ID
  5. 用户信息
  6. 用户家目录
  7. 登录的Shell

/etc/shadow

文件存储了用户密码和与密码相关的安全信息。

image-20250215140510031

每一行对应一个用户,每行由 9 个字段组成,字段之间也用冒号(:)分隔。以下是每个字段的含义:

  1. 用户名
  2. 加密密码
  3. 上次更改密码的日期
  4. 最小密码年龄
  5. 最大密码年龄
  6. 警告期限
  7. 宽限期
  8. 账号失效日期
  9. 保留字段

用户账户初始配置文件

文件来源新建用户帐号时,从 /etc/skel 目录中复制而来。

主要的用户初始配置文件有:

  • ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!

    默认情况下,ta设置一些环境变量,执行用户的.bashrc文件。

  • ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
  • ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.。
  • /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
  • /etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取

组账户文件

  • /etc/group:保存组帐号基本信息
  • /etc/gshadow:保存组帐号的密码信息

image-20250215141431630

image-20250215141442055

查询用户

id

查询用户的身份标识

groups

查询用户所属的组

finger

查询用户账户的详细信息

users、w、who

查询已登录到主机的用户信息

image-20250215141915624

分类: Linux

评论

-- 评论已关闭 --

目录