05【Linux经典命令】Linux 用户管理全面指南:从基础到高级操作

目录

前言

[1 Linux用户管理基础概念](#1 Linux用户管理基础概念)

[1.1 Linux用户类型](#1.1 Linux用户类型)

[1.2 用户相关配置文件](#1.2 用户相关配置文件)

[1.3 UID与GID](#1.3 UID与GID)

[2 用户创建与管理](#2 用户创建与管理)

[2.1 创建用户](#2.1 创建用户)

[2.2 设置用户密码](#2.2 设置用户密码)

[3 用户权限管理](#3 用户权限管理)

[3.1 授予sudo权限](#3.1 授予sudo权限)

[3.2 以其他用户身份执行命令](#3.2 以其他用户身份执行命令)

[4 用户信息查询](#4 用户信息查询)

[4.1 查看用户基本信息](#4.1 查看用户基本信息)

[4.2 查看用户所属组](#4.2 查看用户所属组)

[4.3 查看密码状态](#4.3 查看密码状态)

[4.4 查看密码有效期](#4.4 查看密码有效期)

[5 用户账户策略管理](#5 用户账户策略管理)

[5.1 设置账户过期时间](#5.1 设置账户过期时间)

[5.2 强制用户下次登录修改密码](#5.2 强制用户下次登录修改密码)

[5.3 锁定与解锁用户](#5.3 锁定与解锁用户)

[6 用户切换与环境](#6 用户切换与环境)

[6.1 切换用户](#6.1 切换用户)

[6.2 用户环境变量](#6.2 用户环境变量)

[7 用户删除](#7 用户删除)

[7.1 删除用户及主目录](#7.1 删除用户及主目录)

[8 高级用户管理技巧](#8 高级用户管理技巧)

[8.1 批量创建用户](#8.1 批量创建用户)

[8.2 修改用户属性](#8.2 修改用户属性)

[8.3 密码策略实施](#8.3 密码策略实施)

[9 安全最佳实践](#9 安全最佳实践)

[10 常见问题解答](#10 常见问题解答)

[11 结语](#11 结语)


前言

Linux作为多用户操作系统,其用户管理功能是系统管理员必须掌握的核心技能之一。本文将全面介绍Linux用户管理的各个方面,包括用户创建、密码设置、权限管理、用户组配置等实用操作深入理解Linux用户管理机制。

1 Linux用户管理基础概念

1.1 Linux用户类型

Linux系统中有三种主要用户类型:

  • 超级用户(root):拥有系统最高权限,UID为0
  • 系统用户:用于运行系统服务,UID范围通常为1-999
  • 普通用户:由管理员创建的一般用户,UID通常从1000开始

1.2 用户相关配置文件

Linux用户信息主要存储在以下几个文件中:

  • /etc/passwd:存储用户基本信息
  • /etc/shadow:存储用户密码及密码策略
  • /etc/group:存储用户组信息
  • /etc/gshadow:存储用户组密码

1.3 UID与GID

  • UID(User ID):每个用户唯一的数字标识
  • GID(Group ID):用户主要组的数字标识

2 用户创建与管理

2.1 创建用户

  • 最基本的用户创建命令:

    useradd lianggj

这条命令会在系统中创建一个名为"lianggj"的用户,但不会创建主目录或设置密码。

  • 更完整的用户创建方式:

    useradd -m -s /bin/bash new_lianggj

参数说明:

  • -m:创建用户主目录
  • -s:指定用户默认shell
  • 用户创建流程图

流程说明:

  • 系统首先检查用户名是否已存在
  • 为新用户分配唯一的UID和GID
  • 将用户信息写入/etc/passwd文件
  • 在/etc/shadow中创建密码条目
  • 创建用户主目录并设置适当权限
  • 从/etc/skel目录复制初始配置文件

2.2 设置用户密码

  • 创建用户后,需要为其设置密码:

    echo "123456" | passwd --stdin lianggj

这条命令通过管道将密码"123456"传递给passwd命令,为lianggj用户设置密码。
安全建议

  • 避免使用简单密码
  • 考虑使用pwgen或openssl rand生成随机密码
  • 定期更换密码

3 用户权限管理

3.1 授予sudo权限

  • 在Linux中,可以通过将用户添加到wheel组来授予sudo权限:

    usermod -aG wheel lianggj

参数说明:

  • -a:追加到现有组而不移除其他组
  • -G:指定附加组
    前提条件
    确保wheel组在sudoers文件中有权限,通常位于/etc/sudoers中:
    %wheel ALL=(ALL) ALL

3.2 以其他用户身份执行命令

复制代码
sudo -u lianggj command

4 用户信息查询

4.1 查看用户基本信息

复制代码
id lianggj
  • 输出示例:

    uid=1001(lianggj) gid=1001(lianggj) groups=10(wheel)

4.2 查看用户所属组

复制代码
groups lianggj

4.3 查看密码状态

复制代码
passwd -S lianggj
  • 输出示例:

    lianggj PS 2024-12-13 7 99999 7 -1 (Password set, MD5 crypt.)

4.4 查看密码有效期

复制代码
chage -l lianggj
  • 输出示例:

    Last password change : Dec 13, 2024
    Password expires : never
    Password inactive : never
    Account expires : never
    Minimum number of days between password change : 7
    Maximum number of days between password change : 99999
    Number of days of warning before password expires : 7

5 用户账户策略管理

5.1 设置账户过期时间

复制代码
# 设置lianggj账户将在2025年12月31日过期 
chage -E 2025-12-31 lianggj

5.2 强制用户下次登录修改密码

复制代码
chage -d 0 lianggj

5.3 锁定与解锁用户

  • 锁定用户:

    passwd -l lianggj

  • 解锁用户:

    passwd -u lianggj

  • 账户状态管理流程

流程说明:

  • 管理员选择要执行的操作类型
  • 根据操作类型执行相应命令
  • 系统修改/etc/shadow文件中相应字段
  • 更改立即生效

6 用户切换与环境

6.1 切换用户

复制代码
su - lianggj

参数说明:

  • -或-l:模拟登录,加载用户环境变量

6.2 用户环境变量

用户环境变量通常定义在以下文件中:

  • ~/.bash_profile
  • ~/.bashrc
  • ~/.profile

7 用户删除

7.1 删除用户及主目录

复制代码
userdel -r lianggj

参数说明:

  • -r:删除用户主目录和邮件池
  • 用户删除流程

流程说明:

  • 系统检查用户是否存在
  • 终止该用户的所有进程
  • 从/etc/passwd中删除用户条目
  • 从/etc/shadow中删除密码条目
  • 从/etc/group中移除相关组信息
  • 删除用户主目录和邮件目录

8 高级用户管理技巧

8.1 批量创建用户

  • 可以使用脚本或 newusers 命令批量创建用户:

    newusers users.txt

  • 其中users.txt文件格式为:

    username:password:UID:GID:comment:homedir:shell

8.2 修改用户属性

复制代码
usermod -c "lianggj User" -d /home/new_lianggj -s /bin/bash lianggj

参数说明:

  • -c:设置用户注释
  • -d:修改主目录路径
  • -s:修改默认shell

8.3 密码策略实施

  • 可以通过编辑/etc/login.defs设置全局密码策略:

    PASS_MAX_DAYS 90
    PASS_MIN_DAYS 7
    PASS_WARN_AGE 14

9 安全最佳实践

  • 最小权限原则:只授予用户必要的权限
  • 定期审计:检查用户权限和活动
  • 密码策略:强制使用复杂密码并定期更换
  • 账户过期:为临时账户设置过期时间
  • 禁用root SSH登录:通过编辑/etc/ssh/sshd_config:

    PermitRootLogin no

10 常见问题解答

Q1: 用户被锁定后如何解锁?
A: 使用passwd -u username或手动编辑/etc/shadow文件移除密码前的"!"
Q2: 如何查看系统所有用户?
A: 使用getent passwd或查看/etc/passwd文件
Q3: 为什么用户无法使用sudo?
A: 检查用户是否在sudoers文件或wheel组中,并确认wheel组有sudo权限
Q4: 如何限制用户资源使用?
A: 使用ulimit或配置/etc/security/limits.conf文件

11 结语

Linux用户管理是系统管理员日常工作的重要组成部分。了解用户管理命令和技巧,能够有效地管理系统用户、设置适当的权限并维护系统安全。记住,良好的用户管理实践是系统安全的第一道防线。

相关推荐
烟雨书信3 分钟前
Linux中MySQL的逻辑备份与恢复
linux·运维·mysql
wkj00114 分钟前
QuaggaJS 配置参数详解
java·linux·服务器·javascript·quaggajs
藥瓿亭1 小时前
K8S认证|CKS题库+答案| 5.日志审计
linux·运维·docker·云原生·容器·kubernetes·cka
coder_lorraine1 小时前
【Linux系列】Linux用户大揭秘:从“公寓住户”到“社区管理员”的奇幻之旅
linux
家庭云计算专家2 小时前
飞牛云一键设置动态域名+ipv6内网直通访问内网的ssh服务-家庭云计算专家
运维·云计算·ssh·nextcloud·ddns·动态域名解析
藥瓿锻2 小时前
2024 CKA题库+详尽解析| 15、备份还原Etcd
linux·运维·数据库·docker·容器·kubernetes·cka
bbsh20992 小时前
WebFuture:Ubuntu 系统上在线安装.NET Core 8 的步骤
linux·ubuntu·.netcore·webfuture
太阳之神aboluo2 小时前
压测软件-Jmeter
java·运维·jmeter
ZZZKKKRTSAE2 小时前
快速上手Linux全局搜索正则表达式(grep)
linux·服务器·正则表达式
有谁看见我的剑了?2 小时前
stress 服务器压力测试的工具学习
服务器·学习·压力测试