这些机制不仅能够有效控制谁可以访问哪些资源,还能防止未经授权的访问和数据泄露,为系统管理员提供了强大的管理工具
本文将深入探讨Linux系统中的用户与用户组管理,以及权限设置的原理与实践,帮助您构建一个既安全又高效的操作系统环境
一、Linux用户与用户组概述 1. 用户的概念 在Linux系统中,用户是访问系统资源的主体
每个用户都有一个唯一的用户名和与之关联的用户ID(UID)
根据UID的不同,用户可以分为三类: - 超级用户(root):UID为0,拥有对系统的完全控制权,可以执行任何操作
- 系统用户:UID通常介于1到499之间(具体范围可能因发行版而异),这些用户账户通常由系统服务使用,不建议普通用户登录
- 普通用户:UID从500开始,是大多数日常操作的主体,权限受限,只能访问和操作被授权的资源
2. 用户组的概念 用户组用于将多个用户组织在一起,以便统一管理权限
每个用户组都有一个唯一的组名和一个与之关联的组ID(GID)
用户可以是多个组的成员,这有助于实现更细致的权限控制
用户组主要分为: - 基本组(Primary Group):用户创建时自动分配的第一个组,用户的默认组,新创建的文件和目录默认属于该组
- 附加组(Secondary Group):用户可以额外加入的组,用于扩展用户权限范围
二、用户与用户组管理 1. 用户管理命令 - 添加用户:使用useradd命令
例如,`useradd john`会创建一个名为john的新用户
- 删除用户:使用userdel命令
如`userdeljohn`删除john用户,若要同时删除用户的主目录和邮件文件,可使用`userdel -rjohn`
- 修改用户信息:使用usermod命令
例如,`usermod -aG sudo john`将john添加到sudo组,赋予其管理员权限
- 设置/更改密码:使用passwd命令
如`passwd john`为john用户设置或更改密码
2. 用户组管理命令 - 添加用户组:使用groupadd命令
如`groupadddevelopers`创建一个名为developers的新组
- 删除用户组:使用groupdel命令
如`groupdeldevelopers`删除developers组
- 修改用户组信息:使用groupmod命令
如`groupmod -n devs developers`将developers组名改为devs
- 管理组成员:通过usermod -aG(添加用户到组)和`gpasswd -d`(从组中删除用户)等命令实现
三、权限设置:文件与目录的访问控制 Linux采用基于权限的访问控制模型,每个文件和目录都有三组权限,分别对应所有者(Owner)、所属组(Group)和其他用户(Others)
这三组权限决定了读(r)、写(w)和执行(x)操作是否被允许
1. 权限表示法 - 符号表示法:使用-rwxr-xr--等形式,其中第一个字符表示文件类型(-表示普通文件,`d`表示目录),接下来三组字符分别表示所有者、所属组和其他用户的权限
- 八进制表示法:每组权限可以用一个八进制数字表示,如`rwx`对应7(4+2+1),`r-x`对应5(4+1),`--x`对应1
因此,`-rwxr-xr--`可