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 等命令,系统管理员可以灵活地控制系统的用户权限和访问管理。

相关推荐
勤奋的凯尔森同学3 分钟前
webmin配置终端显示样式,模仿UbuntuDesktop终端
linux·运维·服务器·ubuntu·webmin
丁卯4041 小时前
Go语言中使用viper绑定结构体和yaml文件信息时,标签的使用
服务器·后端·golang
chengooooooo1 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
人间打气筒(Ada)2 小时前
MySQL主从架构
服务器·数据库·mysql
落笔画忧愁e3 小时前
FastGPT快速将消息发送至飞书
服务器·数据库·飞书
小冷爱学习!3 小时前
华为动态路由-OSPF-完全末梢区域
服务器·网络·华为
技术小齐4 小时前
网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
运维·网络·学习
ITPUB-微风4 小时前
Service Mesh在爱奇艺的落地实践:架构、运维与扩展
运维·架构·service_mesh
打不了嗝 ᥬ᭄4 小时前
Linux的权限
linux
落幕4 小时前
C语言-进程
linux·运维·服务器