Linux 用户管理指南

文章目录


在 Linux 系统中,用户管理是系统管理的核心任务之一。通过用户管理命令,系统管理员可以创建、删除、修改用户账户,以及管理用户组权限。本文将详细介绍常用的 Linux 用户管理命令,并结合示例进行说明。

用户管理基础

Linux 是一个多用户、多任务的操作系统,每个用户都有唯一的用户标识(UID)和用户组标识(GID)。系统使用这些标识来控制访问权限。管理用户通常通过以下命令完成:

  • useradd:创建新用户
  • passwd:设置或修改用户密码
  • usermod:修改用户信息
  • userdel:删除用户
  • groupadd:创建新用户组
  • groupmod:修改用户组
  • groupdel:删除用户组

useradd:添加用户

useradd 命令用于创建新用户。其基本语法为:

bash 复制代码
useradd [选项] 用户名

常用选项包括:

  • -d:指定用户主目录。如果不指定,默认会创建 /home/用户名 目录。
  • -m:自动创建用户的主目录。
  • -s:指定用户的默认 shell。
  • -g:指定用户的主组。
  • -G:指定用户的附加组。

示例1:创建用户并自动生成主目录

bash 复制代码
useradd -m -d /home/zhangsan -s /bin/bash zhangsan

此命令会创建一个名为 zhangsan 的用户,主目录为 /home/zhangsan,默认的 shell 为 Bash。

示例2:创建用户并指定用户组

bash 复制代码
useradd -m -G sudo zhangsan

此命令会将 zhangsan 用户添加到 sudo 组,从而赋予其超级用户权限。

passwd:设置或修改用户密码

passwd 命令用于设置用户密码。使用方法为:

bash 复制代码
passwd 用户名

示例:为 zhangsan 设置密码

bash 复制代码
passwd zhangsan

此命令将提示输入新密码并进行确认。

usermod:修改用户信息

usermod 命令用于修改用户账户的属性。常用选项有:

  • -l:修改用户名。
  • -d:修改用户的主目录。
  • -s:修改用户的默认 shell。
  • -g:修改用户的主组。
  • -G:修改用户的附加组。

示例:将 zhangsan 用户的主目录改为 /home/new_zhangsan

bash 复制代码
usermod -d /home/new_zhangsan -m zhangsan

此命令将自动移动原主目录的内容到新目录中。

userdel:删除用户

userdel 命令用于删除用户账户。使用 -r 选项可以同时删除用户的主目录。

示例:删除用户 zhangsan 及其主目录

bash 复制代码
userdel -r zhangsan

groupadd:创建用户组

groupadd 命令用于创建新的用户组,语法如下:

bash 复制代码
groupadd [选项] 组名

示例:创建新组 developers

bash 复制代码
groupadd developers

groupmod:修改用户组

groupmod 命令用于修改用户组的属性,例如修改组名或组标识符(GID)。

示例:将组名 developers 改为 dev_team

bash 复制代码
groupmod -n dev_team developers

groupdel:删除用户组

groupdel 命令用于删除指定的用户组。注意,删除用户组时,组内的用户不会被删除。

示例:删除组 dev_team

bash 复制代码
groupdel dev_team

用户信息查看与管理

除了创建、修改和删除用户和组外,Linux 提供了查看和管理用户信息的命令:

  1. id:显示用户和组信息
  2. who:查看当前登录的用户
  3. w:查看当前登录用户的详细信息
  4. last:显示最近登录的用户列表
  5. finger:显示用户的详细信息

id:查看用户的 UID、GID 和所属组

id 命令用于显示当前用户或指定用户的 UID、GID 和所属组信息。

示例:查看用户 zhangsan 的用户和组信息

bash 复制代码
id zhangsan

输出示例:

bash 复制代码
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan),27(sudo)

whow:查看当前登录的用户

whow 命令都用于查看当前登录的用户,但 w 命令提供了更多的信息。

示例:使用 who 查看登录用户

bash 复制代码
who

输出示例:

bash 复制代码
zhangsan  tty1         2023-08-30 10:22 (:0)

示例:使用 w 查看详细登录信息

bash 复制代码
w

输出示例:

bash 复制代码
 10:25:01 up 1 day,  2:54,  1 user,  load average: 0.10, 0.03, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
zhangsan tty1     :0               10:22   0.00s  0.01s  0.00s /bin/bash

last:查看最近登录用户

last 命令显示用户登录和注销的历史记录。

示例:查看最近登录的用户记录

bash 复制代码
last

finger:查看用户详细信息

finger 命令显示用户的详细信息,包括用户名、主目录、shell 等。finger 可能需要手动安装。

示例:查看用户 zhangsan 的详细信息

bash 复制代码
finger zhangsan

输出示例:

bash 复制代码
Login: zhangsan                       Name: 
Directory: /home/zhangsan             Shell: /bin/bash
On since Wed Aug 30 10:22 (CST) on tty1 from :0
   1 hour 12 minutes idle
No mail.
No Plan.

总结

Linux 用户管理是系统管理中的重要组成部分,涉及用户账户的创建、修改、删除,以及用户组的管理。通过熟练掌握如 useraddpasswdusermod 等命令,系统管理员可以灵活地控制系统的用户权限和访问管理。

相关推荐
Elastic 中国社区官方博客2 小时前
使用 Elastic Cloud Serverless 扩展批量索引
大数据·运维·数据库·elasticsearch·搜索引擎·云原生·serverless
超龄超能程序猿2 小时前
Docker GPU插件(NVIDIA Container Toolkit)安装
运维·docker·容器
Xの哲學3 小时前
Linux SMP 实现机制深度剖析
linux·服务器·网络·算法·边缘计算
2501_906150563 小时前
私有部署问卷系统操作实战记录-DWSurvey
java·运维·服务器·spring·开源
知识分享小能手3 小时前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04的Linux网络配置(14)
linux·学习·ubuntu
钦拆大仁3 小时前
单点登录SSO登录你了解多少
服务器·sso
皇族崛起3 小时前
【视觉多模态】- scannet 数据的 Ubuntu 百度网盘全速下载
linux·ubuntu·3d建模·dubbo
岳来3 小时前
docker 从 Path 值看容器启动命令
运维·docker·容器
CAU界编程小白4 小时前
Linux系统编程系列之进程控制(下)
linux·进程控制
only火车头4 小时前
升级 ceph (16.2 -> 18.2) ceph mon 启动失败
服务器·ceph