Linux用户管理-相关命令及配置文件-超详细-概念详解-初学全

article/2025/11/1 12:58:11

前言

Linux系统作为多用户多任务的操作系统,可以在同一时间内允许多个用户登录、操作及配置计算机,随着需求的增加,用户的增加,我们也就需要对用户进行管理,以至于更有效地开展项目,改善工作,更有效得满足场景需要,提高效果、效率、效益。
下面我们就来了解一下Linux中如何对用户进行管理操作。

目录

        • 前言
    • 一.用户管理命令
      • 1.1 创建用户
      • 1.2 设置密码
      • 1.3 查看当前登录用户
      • 1.4 修改用户属性
      • 1.5 用户密码有效性
      • 1.6 删除用户
      • 1.7 切换登录用户
      • 1.8 踢出当前登录中的用户
      • 1.9 查询用户登录信息
      • 1.10 查询用户UID及GID信息
      • 1.11 退出登录
    • 二.用户组管理命令
      • 2.1 添加用户组
      • 2.2 修改组属性
      • 2.3 设置用户组
      • 2.4 删除用户组
    • 三.用户管理相关的配置文件
      • 3.1 用户信息配置文件
      • 3.2 用户密码信息配置文件
      • 3.3 创建用户默认配置信息文件
      • 3.4 用户限制设定配置文件
    • 四.组管理相关的配置文件
      • 4.1 组信息配置文件
      • 4.2 组密码信息配置文件
        • 结语

一.用户管理命令

通过系统中的命令对用户进行相应的操作。在讲解命令之前,我们需要了解,在linux操作系统中,以下的几个概念

  • UID:用户ID号,用户的唯一标识号,就相当于一个人的身份证号。
  • 所属用户组:在linux操作系统中,一个用户必须有它的用户组,如果不给新用户指定用户组,那么该会默认创建一个与用户名相同的组。
  • GID:用户组的ID号。
  • 家目录:与Windows系统相同,可理解为一个用户的用户文件夹,所有用户的家目录默认被创建在 /home 目录下。相当于Windows操作系统中的 C:/Users 目录。

1.1 创建用户

通过 useradd 命令来创建新的用户。

语法格式: useradd [参数] <用户名>

常用参数:

参数作用
-u指定用户UID
-d指定用户家目录位置
-c添加用户说明/备注
-g指定用户初始所属的用户组
-G指定用户所属附加组
-s指定用户登录的shell解释器

操作演示:

添加新用户 xiaobei

[root@localhost ~]# useradd xiaobei

添加新用户 test01 并且指定其家目录为 /test/test01

[root@localhost ~]# useradd -d /test/test01 test01

添加新用户 test01 并且指定ID为6666

[root@localhost ~]# useradd -u 6666 test01

添加新用户 test01 并且指定其所属组为root,并设置其登录shell为nologin

[root@localhost ~]# useradd -g root -s /sbin/nologin test01

1.2 设置密码

通过passwd命令来设置当前登录用户(自身)或者其他用户的密码。该命令如果不加用户名,即代表对当前登录的用户进行操作。不加参数,代表设置密码。这里我们需要知道,通常创建用户都是root来做的,所以设置密码也都是root用户身份来进行设置。如果是普通用户想设置root用户的密码,怎么办呢?不是不可以,只是该普通用户必须拥有sudo权限。本文我们只需要理解可以这么做就好。

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

常用参数:

参数作用
-d删除密码
-S查询用户密码的状态
-l锁定用户密码
-u解锁用户密码

操作演示:

设置当前登录用户的密码:

[root@localhost ~]# passwd

设置用户xiaobei的密码

[root@localhost ~]# passwd xiaobei

清除用户 xiaobei 的密码

[root@localhost ~]# passwd -d xiaobei

1.3 查看当前登录用户

使用命令whow 命令可以查询当前系统上已登录用户的相关信息。

语法格式: who [参数]

常用参数:

参数作用
-a打印全面信息
-b打印系统最近引导时间
-H带有列名打印信息
-u打印已登录用户列表

操作演示:
输出当前已登录的用户信息(带列名打印)

[root@localhost ~]# who -H
名称      线路    时间              备注
root     pts/0  2020-12-30 16:16 (192.168.3.8)

注释:线路列表中的 pts/0 ,pts代表远程终端登录,如果输出了 tty1,则tty代表本地终端登录。

语法格式: w [参数]

常用参数:

参数作用
-h不带列名输出
-s使用短格式输出

操作演示:
输出当前已登录用户信息(带列名输出)

[root@localhost ~]# w
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.3.8      16:16    0.00s  0.46s  0.01s w

注释:LOGIN@ 代表登录时间,IDLE表示空闲时间,JCPU是与该终端连接的进程占用的时间,PCPU 是用户当前进程所占用的时间。

1.4 修改用户属性

使用usermod命令,可以修改用户相关属性和信息。

语法格式: usermod [参数] <用户名>

常用参数:

参数作用
-u修改用户UID
-c修改用户的说明/备注
-g修改用户的所属用户组
-G修改用户的附加组
-L锁定用户密码
-U解锁用户密码
-s修改用户的登录shell

操作演示:

设置用户xiaobei的登录shell为nologin 使其无法登录

[root@localhost ~]# usermod -s /sbin/nologin xiaobei

1.5 用户密码有效性

使用chage命令修改用户和用户密码的有效期限,这个信息由系统用于确定用户何时必须更改其密码。

语法格式: chage [参数] [用户名]

常用参数:

参数作用
-M密码保持有效的最大天数
-W用户密码到期前,提前收到警告信息的天数
-E帐号到期的日期,会禁止此帐号
-d上一次更改的日期
-l显示用户的密码相关信息

操作演示:

使用户 xiaobei 的密码有效期最大为30天。

[root@localhost ~]# chage -M 30 xiaobei

1.6 删除用户

使用命令userdel删除用户。在删除之前确定用户没有登录。

语法格式: userdel [参数] [用户名]

常用参数:

参数作用
-f强制删除用户账号
-r同时删除用户的家目录

操作演示:
删除用户 test01 同时删除该用户的家目录

[root@localhost ~]# userdel -r test01

1.7 切换登录用户

使用 su 命令切换当前登录用户。root 用户切换普通用户时不需要输入密码,反之需要。

语法格式: su [用户名]

常用参数:

参数作用
-c仅执行一次命令,不切换用户身份

操作演示:

切换到用户 xiaobei

[root@localhost ~]# su xiaobei

切换到用户 root 同时一起切换环境变量。

[xiaobei@localhost ~]$ su - root

用root用户执行一条命令 useradd

[xiaobei@localhost ~]$ su - root -c "useradd test01"

1.8 踢出当前登录中的用户

我们想对某用户进行删除操作的时候,发现该用户正在被登录,这个时候我们就可以用命令 pkill ,使该用户被迫下线。知晓linux系统的同仁应该会了解,该命令其实是一个杀死进程的命令。其实在这里可以踢出登录的用户,也是可以理解的,因为一个用户在系统上登录,是会产生对应的进程的。因为在本贴我们主讲用户管理,所以在这里只介绍这一种用法。

语法格式: pkill -9 -t <终端号>

操作演示:

踢出在远程终端 终端号为 pts/1 登录的用户。

[root@localhost ~]# pkill -9 -t pts/1

操作解释:

这里的 -9 参数,是linux系统中的kill信号,在这里我们只需要知道这条命令可以立即踢出一个用户即可。 参数 -t 代表指定终端号。前面我们讲到过,可以通过 w 命令和 who 命令查询当前都有哪些用户登录,这里就是要配合这两个命令使用的,我们需要知道要踢出的用户所登录的终端号,一般踢出的都是远程用户,所以基本都是pts开头,这两个查询命令都可以查到用户登录的终端号,这个时候再使用该命令按终端号踢出用户,该用户就会立即下线。

1.9 查询用户登录信息

在Linux系统中可以查询到所有用户的登录信息,以及系统上近期的登录信息,通过两个命令可以查询:lastloglast

语法格式: lastlog [参数]

常用参数:

参数作用
-b显示指定天数前的登录信息
-t显示指定天数以来的登录信息
-u显示指定用户的最后一次的登录信息

操作演示:

查询root用户最后一次的登录信息

[root@localhost ~]# lastlog -u root

查询UID为 1000 的用户最近7天有没有登录过(有就会输出信息)。

[root@localhost ~]# lastlog -t 7 -u 1000

使用last命令查看的是系统上的用户登录记录及信息,以时间排序。

语法格式: last [参数]

常用参数:

参数作用
-R简略输出(短格式)
-n指定最近几条记录

操作演示:

查询系统上最近的十条登录信息。

[root@localhost ~]# last -n 10

使用lastb命令查看的是系统上的用户登录失败的记录及信息

语法格式: lastb [参数]

常用参数:

参数作用
-a把从何处登入系统的主机名称或ip地址显示在最后一行
-n设置列出名单的显示列数
-R不显示登入系统的主机名称或IP地址
-x显示系统关机,重新开机,以及执行等级的改变等信息

操作演示:
查询登录失败所有的信息

[root@localhost ~]#lastb

1.10 查询用户UID及GID信息

使用 id 命令可以查询用户的UID以及所属用户组的GID信息。

语法格式: id [参数] [用户名]

常用参数:

参数作用
-r显示实际ID
-u显示用户ID
-g显示用户所属群组的ID
-G显示用户所属附加群组的ID
-n显示用户,所属群组或附加群组的名称

操作演示:

查询用户 xiaobei 的所有ID的信息

[root@localhost ~]# id xiaobei

1.11 退出登录

使用命令 logout 退出登录。远程终端以及su命令登录的用户也可用 exit 退出。


二.用户组管理命令

在前面我们提到过,在创建新用户时,会同时创建一个与该用户同名的用户组。这是因为Linux中的用户,必须有一个所属组,如果在创建用户时指定一个所属组,就不会创建与其同名的组了。下面我们只简单介绍几个组管理的命令。

2.1 添加用户组

使用命令groupadd 添加用户组。

语法格式: groupadd [参数] <组名>

常用参数:

参数作用
-g创建的同时制定用户组ID

操作演示:

添加用户组 userg 并指定id为6666

[root@localhost ~]# groupadd -g 6666 userg

2.2 修改组属性

使用命令groupmod 修改用户组的信息。

语法格式: groupmod [参数] <组名>

常用参数:

参数作用
-n修改组名
-g修改新的GUID

操作演示:

修改用户组 userg 组名为testgroup

[root@localhost ~]# groupmod testgroup userg

2.3 设置用户组

使用命令gpasswd 来设置组和组内成员

语法格式: gpasswd <参数 > <组名>

常用参数:

参数作用
-a添加用户到组
-d从组删除用户

操作演示:

把用户 xiaobei 添加到 group01 用户组

[root@localhost ~]# gpasswd -a xiaobei group01

2.4 删除用户组

使用命令groupdel 来设置组和组内成员。如果组内有初始用户,则不能删除,如果组内有附加用户,也可以删除。

语法格式: groupdel [参数] <组名>

操作演示:

删除用户组 test01

[root@localhost ~]# groupdel test01

三.用户管理相关的配置文件

以上所有的用户管理、组管理命令,包括用户的添加、删除,密码的修改,有效期设置等命令的操作,均会保存在配置文件中,也就是命令的操作也就是修改配置文件。换一种说法,例如我们要修改某用户的密码有效期,除了可以使用命令,还可以直接修改Linux中记录用户信息的配置文件。都可以达到同样的效果。

3.1 用户信息配置文件

通过命令进行创建、修改用户以及相关操作,都是对配置文件/etc/passwd的修改。比如修改用户家目录,可以用命令 usermod 修改,也可以直接修改文件中的第六个字段。该文件除了记录普通用户的信息,也记录了系统用户的信息。切记,系统用户的信息不要轻易更改,否则进行某相关操作时,会导致系统错误。
通过命令 less /etc/passwd 或者 vim /etc/passwd 可以查看以及修改该配置文件。

文件概览:
在这里插入图片描述
字段对应信息:

1.用户名称:2.密码标志:3.UID:4.GID :5.用户说明/备注:6.家目录:7.登录的shell

字段解释:

密码标志 x 代表该用户有密码。
UID中 0 代表超级用户,RedHat、CentOS系列的发行版中,1-499为系统用户(伪用户),通过配置文件可以看到它们的shell解释器都为nologin也就是不登录。500-65535为普通用户可用的UID。
用户的附加组可以有多个。

3.2 用户密码信息配置文件

在Linux系统中/etc/shadow文件存放用户密码信息,又称为“影子文件”。由于存放了密码信息,为了保证安全性,该文件只有root用户可以读取。

文件概览:
在这里插入图片描述
字段对应信息:

1.用户名称:2.加密密码:3.密码最后一次修改日期:4.两次密码的修改间隔:5.密码有效期:6.有效期到期前的警告天数:7.宽限天数:8.账号失效时间

字段解释:

加密密码采用了SHA512散列加密算法。如果该字段为 !! 或 * 就代表该用户不能登录。
该文件所有的日期格式均采用时间戳。
两次密码的修改间隔为天数,10 就代表修改过一次密码后十天内不能再次修改。

unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)
是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z.
一个小时表示为UNIX时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。
在大多数的UNIX系统中UNIX时间戳存储为32位,这样会引发2038年问题或Y2038。
-------- 百度百科

第七字段宽限天数,代表用户封禁前的缓冲天数,如果该值为3,就代表有效期过三天后再进行用户封禁。

3.3 创建用户默认配置信息文件

在创建用户时,我们可以手动指定家目录。如果不指定,就会默认把家目录放到/home目录下。如果我想让它默认创建到其他位置呢?我们就可以通过修改配置文件/etc/default/useradd文件来实现。

文件概览:
在这里插入图片描述

字段解释:

HOME字段控制创建用户时默认的家目录位置
INACTIVE为密码过期的宽限天数
SHELL创建用户默认的登录shell
SKEL为家目录的模板目录
CREATE_MAIL_SPOOL是否建立邮箱
GROUP用户的默认组
EXPIRE密码失效时间

3.4 用户限制设定配置文件

在配置文件/etc/login.defs中,记录了用户限制设定。该文件的作用是为了对用户更为规范的管理,例如用户默认的密码有效期,就可以通过该文件进行修改,就是前面有讲到的chage命令相关的,不过该文件修改的是用户创建时的默认项,相当于一个模板文件。注意,该文件设置对用户root不生效。

文件概览:
在这里插入图片描述
部分字段解释:
PASS_MAX_DAYS 默认密码有效期
UID_MIN UID的最小值
PASS_MIN_DAYS 两次密码修改的间隔。


四.组管理相关的配置文件

与用户管理相同,除了命令,也可以通过直接修改配置文件来达到对组的配置。

4.1 组信息配置文件

用户组的配置文件位置为/etc/group

文件概览:
在这里插入图片描述

字段对应信息:

1.组名:2.组密码标志:3.GID:4.组中附加用户

4.2 组密码信息配置文件

组密码信息文件/etc/gshadow中存放着用户组的密码以及管理员用户名。

文件概览:
在这里插入图片描述

字段对应信息:

1.组名:2.组密码:3.组管理员用户名:4.组中附加用户


结语

不写个5000字都对不起超详细三个字。

本文唯一引用引自百度百科。
部分命令的参数整理参考 https://www.linuxcool.com/ 网站。


http://chatgpt.dhexx.cn/article/RecZsK34.shtml

相关文章

Ubuntu/Linux用户管理与权限管理(超详细解析)

由于实验室几个老师的学生要共同使用一台服务器&#xff0c;所以需要规范一下服务器的使用&#xff0c;并且给各位学生配置相关的用户和权限&#xff0c;之前一直都是自己用&#xff0c;所以借此机会学习和总结一下Linux服务器的用户管理与权限管理。 Ubuntu/Linux用户管理与权…

轻松搞懂Linux中的用户管理

文章目录 概念用户账户用户组用户权限用户管理工具 概念 用户管理是Linux系统管理员必须掌握的重要技能之一。Linux系统是一个多用户操作系统&#xff0c;可以支持多个用户同时使用&#xff0c;每个用户拥有自己的账户和权限&#xff0c;因此管理员需要了解如何创建、管理和删…

Linux用户管理相关命令(全)

1、Linux用户(账号)管理 查询用户(账号)信息&#xff08;判断用户(账号)是否存在&#xff09; id account新增用户(账号) useradd account设置用户(账号)密码 方式1&#xff1a; passwd account 方式2&#xff1a; echo 123|passwd --stdin account; #密码为123删除用户(账…

Linux用户管理、组管理及权限管理

文章目录 Linux用户管理whoami指令who指令useradd指令userdel指令passwd指令usermod指令 - 修改已有账号自身的信息id指令 - 查询用户信息 Linux用户组管理groupadd 指令groupdel指令groupmod - 修改用户组自身的属性groups指令 - 显示用户所属组 Linux权限的概念su指令sudo指令…

【Linux】用户管理命令

往期内容&#xff1a; Linux常用指令合集 Linux文本编辑器 Linux软件包管理 Linux用户管理 Linux权限管理 文章目录 用户配置文件用户信息文件路径&#xff1a; /etc/passwd 影子文件路径&#xff1a;/etc/shadow 组信息文件和组密码文件组信息文件/etc/group组密码文件/…

Linux 用户管理

目录 1. 添加用户 2. 设置用户密码 3. 切换用户 4. 删除用户 ​​Linux 中&#xff0c;用户保存在 /etc/passwd 中&#xff0c;用户密码保存在 /etc/shadow 中&#xff0c;用户组保存在 /etc/group 中。 1. 添加用户 useradd <username> 在添加 Linux 用户之前&#xf…

Linux用户管理

目录 1.用户管理 1.1 用户类型 1.2 用户UID 1.3 配置文件 1.3.1 /etc/passwd 1.3.2 /etc/shadow 1.4 新增用户 1.5 设置密码 1.6 删除用户 1.7 切换用户 1.8 添加sudo用户 2. 用户组管理 2.1 用户组类型 2.2 用户组GID 2.3 配置文件 2.4 新增用户组 2.5 删除用户组 Linux是一个…

Linux 系统中的用户管理

Linux系统中的用户管理 1. 用户及用户组存在的意义1.1 用户存在的意义1.2 用户组存在意义 2. 用户及用户组在系统中的存在方式3. 用户切换3.1 用户查看3.2 用户切换 4. 用户涉及到的系统配置文件5. 用户和用户组建立及删除6. 用户和用户组的信息管理7. 用户认证信息管理7.1 用户…

EduCoder Linux之用户管理

一个操作系统安全的核心组件就是用户账户管理,Linux是个多用户多任务的操作系统&#xff0c;所有要使用系统资源的用户都必须先向系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统。 多用户多任务操作系统就是指可以在系统上建立多个用户&#xff0c;而同一时间…

Linux系统管理---linux用户管理

目录 一、配置文件 1、/etc/password 2、/etc/shadow 时间戳转日期&#xff1a; 3、/etc/group 4、/etc/gshadow 5、/etc/login.defs 6、/etc/default/useradd 7、/etc/skel 二、命令 1、用户创建过程 useradd/usermod/userdel/passwd/groupadd/gpasswd/newgrp/group…

sql server 2008 r2数据库备份还原

一、安装SQL SERVER 2008R2。各种下一步。 二、从原数据库中备份数据库。 步骤&#xff1a;点击数据库右键–>任务–>备份。 需要注意&#xff1a;备份地址只能有一个&#xff0c;否则数据库会被分包备份。导致还原时出现异常。如下图所示: 三、还原 1、创建数据库马甲。…

十一、MYSQL数据库备份还原

十一、MYSQL数据库备份还原 数据库冷备份mysqldump备份和还原数据库备份主从数据库备份备份指定数据库备份多个数据库备份所有数据库 备份数据表方法1: mysqldump备份数据表方法2: create table备份方法3: SQL SELECT INTO 实例 - 制作备份复件 导出数据库信息查看secure-file-…

数据库还原差异备份文件

首先有一个完整的数据库备份&#xff0c;其次要确定当前的差异备份文件是基于这个完整的数据库备份的文件&#xff08;即在这个数据库完整备份完件备份之后&#xff0c;到这个差异备份文件备份之时&#xff0c;数据库没有被完整备份过&#xff09; 1、还原完整数据库&#xff…

数据库备份和还原bak文件

备份&#xff1a; 选中数据库右键 > 任务 > 备份 还原&#xff1a; 选中数据库右键 > 任务 > 还原 >数据库 在选项里勾选覆盖现有数据库&#xff0c;有可能数据库还在使用还原不成功就勾选关闭目标数据库现有连接 在常规里边点击设备选择备份的设备&#x…

mssql数据库的备份与还原

一、mssql数据库备份 右键需要备份的数据库 > 任务 > 备份 进入到备份数据库页面后 ①. 检查备份类型(完整)和备份目标(磁盘) ②. 删除原有备份路径 ③. 添加新路径 选择路径并给备份文件命名&#xff0c;注意&#xff1a;文件名需要加上后缀 点击确定&#xff0c;待弹出…

SQL Sever 数据库的备份与还原

1.数据库的备份 1.选择要备份的数据库 creat--右键任务--备份 2.设置文件位置 3.可以给备份的数据库设置时间限制 5.备份完成 2.数据库的还原 2.数据的还原 选择数据库右击还原数据库 2.从设备还原数据库---选择文件位置---添加 3,选择要还原的数据库--注意要选择所有文件 4…

达梦数据库的备份和还原

简要介绍一下达梦数据库备份还原的概念以及如何进行备份还原及故障恢复。 物理备份&#xff1a;拷贝有效数据页。 联机备份 联机即在数据库运行状态下进行备份&#xff0c;必须开归档模式&#xff0c;支持库备份、表空间备份、表备份、归档备份。它包括完全备份&#xff08;拷…

SQL Server 2012 数据库备份还原

文章目录 1.数据库备份2.创建备份设备使用SSMS工具创建备份设备使用SQL方式创建备份设备 3.完整备份与还原使用SSMS工具完整备份与还原使用SQL方式完整备份与还原 4.差异备份与还原使用SSMS工具差异备份与还原使用SQL方式差异备份与还原 5.事务日志备份与还原使用SSMS工具事务日…

达梦数据库之备份与还原

备份与还原是DBA必备的技能之一&#xff0c;为防止数据的误操作、误删除等突发情况&#xff0c;所以备份还原至关重要&#xff0c;一下从几方面共同学习一下达梦数据库的备份与还原基础知识。 一、概述 达梦数据库的备份还原方式&#xff1a;物理备份还原和逻辑备份还原物理备…

DB2数据库的备份还原详解

备份&#xff1a; 一、连接数据库服务器&#xff08;在服务器端建立备份文件夹&#xff09; windows下&#xff08;winr mstsc&#xff09;输入db2cmd&#xff0c;linux下&#xff08;我使用的是xshell&#xff09; 若当前用户为root则需要切换用户至数据库管理员 db2inst1 …