首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >linux常用命令(8)——用户管理

linux常用命令(8)——用户管理

作者头像
christine-rr
发布2026-01-13 19:29:14
发布2026-01-13 19:29:14
3690
举报
文章被收录于专栏:linux命令linux命令

博客主页:christine-rr-CSDN博客 ​​​​​ ​​ hi,大家好,我是christine-rr ! 今天来分享一下linux常用命令——用户管理

八、用户管理

1. user add 创建用户账户

useradd 是 Linux 中用于创建新系统用户的核心命令,需 root 权限(可通过 sudo 执行)。默认情况下,创建用户时会自动生成对应的用户组(与用户名同名)、家目录(/home/用户名)和登录 Shell(如 /bin/bash)。

常用选项

选项

功能说明

-m /–create-home

强制创建用户的家目录(默认已开启,部分精简系统需显式指定)

-s / --shell

指定用户的登录 Shell(如 /bin/bash 可登录,/sbin/nologin 禁止登录)

-g / --gid

指定用户的初始组(需提前存在,默认创建同名组)

-G / --groups

指定用户的附加组(多个组用逗号分隔,扩展用户权限)

-d / --home-dir

自定义用户家目录路径(默认 /home/用户名)

-r / --system

创建系统用户(用于运行服务,UID 通常小于 1000,无家目录)

实操示例
代码语言:javascript
复制
sudo useradd zhangsan # 创建普通用户 `zhangsan`,自动生成家目录和同名组

sudo useradd -s /bin/bash -G sudo lisi	#创建用户 `lisi`,指定登录 Shell 为 `/bin/bash`,附加组为 `sudo`(获得管理员权限)

sudo useradd -r mysql #创建系统用户 `mysql`(用于运行 MySQL 服务,无家目录)

cat /etc/passwd | grep zhangsan #查看新用户是否创建成功(检查 `/etc/passwd` 文件,该文件存储所有用户信息)
zhangsan:x:1001:1001::/home/zhangsan:/bin/bash	#输出示例
2. passwd :修改用户密码

passwd 用于设置或修改用户密码,普通用户仅可修改自身密码root 用户可修改所有用户密码(包括强制重置)。Linux 密码默认要求:至少 8 位、包含字母 + 数字 + 特殊字符(可通过 /etc/login.defs 调整策略)。

常用选项

选项

功能说明

无选项

普通用户执行时,直接修改自身密码(需输入旧密码验证)

用户名

root 用户修改指定用户的密码(无需旧密码)

-l / --lock

锁定用户账户(禁止登录,密码前加 ! 标记)

-u / --unlock

解锁被锁定的用户账户

-d / --delete

删除用户密码(使账户无密码,不建议生产环境使用)

-e / --expire

强制用户下次登录时必须修改密码

实操示例

普通用户 zhangsan 修改自身密码:

执行 passwd → 输入旧密码 → 输入新密码(输入时不显示,需确认两次)。

root 用户重置 lisi 的密码(无需旧密码):

代码语言:javascript
复制
sudo passwd lisi

直接输入新密码并确认,适合用户忘记密码的场景。

锁定 zhangsan 账户(禁止登录):

代码语言:javascript
复制
sudo passwd -l zhangsan

强制 lisi 下次登录时改密码:

代码语言:javascript
复制
sudo passwd -e lisi
3.su :切换用户

su(substitute user)用于切换当前登录用户的身份,分为完全切换非完全切换

  • 完全切换:加载目标用户的环境变量(如家目录、Shell 配置),格式为 su - 用户名
  • 非完全切换:仅切换用户身份,保留当前环境变量,格式为 su 用户名(不推荐,易出现权限异常)。
常用选项

选项

功能说明

- / --login

完全切换用户环境(等同于 su - 用户名)

-c / --command

切换用户后执行单次命令,执行完返回原用户

无选项

非完全切换(仅切换 UID/GID,保留当前目录和环境变量)

实操示例

从普通用户切换到 root(完全切换,加载 root 环境):

su - root → 输入 root 密码(若系统默认禁用 root 直接登录,需用 sudo su -,无需单独输入 root 密码)。

切换到 zhangsan 并执行 ls /home/zhangsan 命令,执行后返回原用户:

代码语言:javascript
复制
su - zhangsan -c "ls /home/zhangsan"

非完全切换到 lisi(仅身份切换,当前目录仍为原用户目录):

su lisi → 输入 lisi 密码,执行 pwd 会发现目录未变。

注意事项
  • 普通用户切换到 root 需知道 root 密码,而 sudo su - 仅需当前用户在 sudo 组(更安全,推荐生产环境使用);
  • 切换用户后,用 exit 命令可返回原用户身份。
4. id :显示用户详细信息

id 命令用于查看当前用户或指定用户的 UID(用户 ID)、GID(组 ID)、所属组列表 等核心信息,无需权限,所有用户均可执行。

常用选项

选项

功能说明

无选项

显示当前登录用户的信息

用户名

显示指定用户的信息

-u / --user

仅显示用户的 UID

-g / --group

仅显示用户的初始组 GID

-G / --groups

仅显示用户的所有组(初始组 + 附加组)的 GID

-n / --name

与 -u/-g/-G 搭配,显示组名 / 用户名(而非 ID)

实操示例

查看当前用户的完整信息:

代码语言:javascript
复制
id

输出示例(当前为 zhangsan):

代码语言:javascript
复制
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan),27(sudo)

(说明:zhangsan 的 UID/GID 为 1001,附加组为 sudo,有管理员权限)。

查看 mysql 用户的 UID 和用户名: id -un mysql → 输出 mysql-u 显示 UID,-n 转成用户名)。

查看 lisi 所属的所有组名: id -Gn lisi → 输出 lisi sudo-G 显示所有组 GID,-n 转成组名)。

5. whoami:查看当前用户

whoami 是最简单的用户查询命令,仅显示当前登录的用户名,无任何选项,所有用户均可执行。

  • 场景:切换用户后快速确认当前身份,或在脚本中判断执行用户。
实操示例
  1. 普通用户登录时执行: whoami → 输出 zhangsan
  2. 切换到 root 后执行: su - rootwhoami → 输出 root
  3. id 对比:whoami 仅显用户名,id 显完整的 UID/GID 信息,按需选择。
6. who :显示当前在线用户

who 命令用于查看当前系统中所有已登录的用户,包括登录时间、登录终端(如 tty1 本地终端、pts/0 远程终端)、登录 IP(远程登录时显示)等信息,无权限限制。

常用选项

选项

功能说明

无选项

显示在线用户的基础信息(用户名、终端、登录时间、IP)

-r / --runlevel

显示当前系统的运行级别(如 5 表示图形界面,3 表示命令行)

-b / --boot

显示系统的启动时间

-H / --heading

显示表头(列名:NAME 用户名、LINE 终端、TIME 登录时间、COMMENT IP)

实操示例

查看当前在线用户(带表头): who -H

输出示例:

代码语言:javascript
复制
NAME     LINE         TIME             COMMENT
zhangsan tty1         2024-05-20 09:30 
lisi     pts/0        2024-05-20 10:15 192.168.1.100

说明:zhangsan 通过本地终端 tty1 登录,lisi 通过远程 IP 192.168.1.100 登录。

查看系统启动时间: who -b → 输出 system boot 2024-05-20 08:00

查看系统运行级别: who -r → 输出 run-level 5 2024-05-20 08:00

7. hostname:查看 / 修改主机名

hostname 用于查看或临时修改系统的主机名(主机名是系统的标识,如 server-01,远程登录时会显示)。

  • 临时修改:重启后失效;
  • 永久修改:需编辑 /etc/hostname 文件(CentOS/RHEL 还需改 /etc/sysconfig/network)。
常用选项

选项

功能说明

无选项

查看当前主机名

新主机名

临时修改主机名为 “新主机名”(需 root 权限,重启失效)

-i / --ip-address

查看主机名对应的 IP 地址(需 DNS 或 /etc/hosts 配置映射)

-f / --fqdn

查看主机的完全限定域名(FQDN,如 server-01.example.com)

实操示例
  1. 查看当前主机名: hostname → 输出 localhost.localdomain(默认初始主机名)。
  2. 临时修改主机名为 web-server(重启后恢复): sudo hostname web-server → 执行 hostname 验证,输出 web-server
  3. 永久修改主机名(以 Ubuntu 为例):
    • 编辑 /etc/hostname 文件:sudo vim /etc/hostname,将内容改为 web-server,保存退出;
    • 编辑 /etc/hosts 文件(添加主机名与 IP 的映射): sudo vim /etc/hosts → 添加一行 127.0.0.1 web-server
    • 重启系统生效:sudo reboot
  4. 查看主机名对应的 IP: hostname -i → 输出 127.0.0.1 192.168.1.200(需提前配置 /etc/hosts)。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 八、用户管理
    • 1. user add 创建用户账户
      • 常用选项
      • 实操示例
    • 2. passwd :修改用户密码
      • 常用选项
      • 实操示例
    • 3.su :切换用户
      • 常用选项
      • 实操示例
      • 注意事项
    • 4. id :显示用户详细信息
      • 常用选项
      • 实操示例
    • 5. whoami:查看当前用户
      • 实操示例
    • 6. who :显示当前在线用户
      • 常用选项
      • 实操示例
    • 7. hostname:查看 / 修改主机名
      • 常用选项
      • 实操示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档