文章目录
- Linux 用户与组管理详解
- 介绍
- 用户管理
- 用户分类
- UID(用户标识号)
- 用户账号文件
- 用户密码文件
- 常用用户管理命令
- 组管理
- 组分类
- GID(组标识号)
- 组账户文件
- 组管理命令
- 查询账号信息
- 总结
Linux 用户与组管理详解
介绍
在 Linux 系统中,用户和组是实现权限控制和管理的基础。不同类型的用户和组拥有不同的权限和功能。在本博文中,我们将深入探讨 Linux 系统中的用户管理和组管理,包括常见的用户类型、UID、GID、如何管理用户和组、以及相关命令的使用方法。
用户管理
用户是 Linux 系统中最基本的实体之一,Linux 中有不同类型的用户,每个用户有一个唯一的 UID(用户标识号),用于系统区分不同的用户。
用户分类
-
超级用户:root
作为 Linux 系统中的最高权限用户,root 用户拥有执行任何操作的权限。使用 root 用户时,务必小心谨慎,以免操作失误带来系统崩溃或数据丢失。 -
普通用户:
普通用户是用于日常的系统管理与使用。它们的权限受限,只能访问系统中自己的文件和部分公共资源。 -
程序用户:
程序用户主要用于运行特定的服务和程序,这些用户通常不能直接登录系统,且仅用于服务进程的管理和运行。
UID(用户标识号)
- UID: 0:代表 root 用户,权限最高。
- UID: 500-60000:代表普通用户。
- UID: 1-499:代表程序用户。
用户账号文件
-
/etc/passwd:该文件包含了系统中所有用户的基本信息,包括用户名、用户ID、组ID、家目录路径和登录 shell。
-
查看当前系统用户数量:
cat /etc/passwd | wc -l
-
查看所有用户信息:
cat /etc/passwd
-
解析示例:
root:x:0:0:root:/root:/bin/bash
各字段含义如下:- 用户名:root
- 密码占位符:x(表示密码加密存储在
/etc/shadow
中) - 用户 UID:0
- 组 GID:0
- 用户描述:root
- 用户家目录:/root
- 登录 shell:/bin/bash
-
用户密码文件
-
/etc/shadow:保存着用户的加密密码及其他密码信息,如密码修改日期、最小修改期限等。
-
查看用户密码配置:
cat /etc/shadow
-
解析示例:
root:$$FHd:17211:0:99999:7:::
各字段含义如下:
- 用户名:root
- 加密密码:$$FHd
- 上次修改密码的时间:17211
- 密码最短使用期限:0(可以随时修改密码)
- 密码最大使用期限:99999(永不过期)
- 密码提前提醒天数:7
- 账号失效时间:无
-
常用用户管理命令
-
添加用户:
useradd [选项] 用户名
常用选项:
-u
:指定 UID-d
:指定家目录-e
:指定账号失效时间-M
:不新建用户家目录-s
:指定登录 Shell
示例:
useradd -u 510 hehe useradd -s /sbin/nologin haha
-
设置密码:
passwd [选项] 用户名
常用选项:
-d
:清空密码,允许无密码登录-l
:锁定账户-u
:解锁账户-S
:查看账户状态
示例:
passwd -d hehe passwd -l haha
-
更改用户信息:
usermod [选项] 用户名
常用选项:
-L
:锁定账户-U
:解锁账户-u
:更改 UID-d
:更改家目录-s
:更改登录 Shell-e
:更改失效时间
-
删除用户:
userdel [选项] 用户名
常用选项:
-r
:删除用户及其家目录
示例:
userdel -r hehe
组管理
在 Linux 中,组用于对一组用户进行权限管理。每个组都有一个 GID(组标识号)。
组分类
- 基本组:每个用户只能属于一个基本组,通常与用户名同名。
- 附加组:一个用户可以属于多个附加组,用于集体权限管理。
- root 组:root 用户所属的组。
GID(组标识号)
- 基本组:GID 1-499
- 附加组:GID 500-60000
- root 组:GID 0
组账户文件
-
/etc/group:记录了系统中所有组的信息,包括组名、组成员等。
示例:
cat /etc/group
解析示例:
mail:x:12:mail,postfix
各字段含义:
- 组名:mail
- 组密码占位符:x
- GID:12
- 组成员:mail, postfix
组管理命令
-
新建组:
groupadd [选项] 组名
示例:
groupadd -g 600 qwe
-
添加/删除用户到组:
gpasswd [选项] 用户名 组名
常用选项:
-a
:添加用户到组-d
:删除用户出组-M
:设置组成员
示例:
gpasswd -a hehe qwe gpasswd -d hehe qwe gpasswd -M hehe,haha qwe
-
删除组:
groupdel 组名
查询账号信息
-
查询用户信息:
id [用户名]
查看用户的 UID、GID 及所属组。
-
查询用户所属组:
groups [用户名]
-
查询用户详细信息:
finger [用户名]
总结
Linux 系统的用户与组管理是系统安全和权限管理的重要部分。通过合理的用户和组设置,可以确保不同用户具有适当的权限,从而减少系统的安全风险。在日常使用中,掌握常见的用户管理和组管理命令对于系统管理员来说至关重要。
通过本文的学习,您应能熟练使用 Linux 用户与组管理的常用命令,合理分配权限,从而提高系统的安全性与管理效率。