前言:在 Linux 系统生态中,Ubuntu 凭借其易用性和稳定性成为众多开发者与企业的首选操作系统。而权限管理作为 Ubuntu 系统安全的核心支柱,直接决定了系统的稳定性、数据安全性和操作规范性。本文将从基础原理到实战操作,全面解析 Ubuntu 权限管理的核心知识。
一、权限管理三角:用户、组与权限
Ubuntu 采用多用户多任务的操作系统设计,其权限管理体系建立在 "用户 - 组 - 权限" 的三角模型之上,理解这一模型是掌握权限管理的基础。
1.1用户体系:三种身份的明确划分
Ubuntu 系统中将用户划分为三种核心身份:
- root 用户:拥有对系统的绝对控制权,可执行包括删除系统文件、修改核心配置等所有操作。默认情况下,Ubuntu 为了安全起见会隐藏 root 用户的直接登录入口。
- 普通用户:日常操作的主要身份,权限受限,仅能在授权范围内操作。
- 系统用户:由系统自动创建的特殊用户,用于运行特定服务(如 www-data 用于 Web 服务),不允许交互式登录。
id命令可查看当前用户的身份,cat /etc/passwd命令可查看系统中所有用户的列表。
1.2用户组:权限的批量管理单元
用户组是实现权限批量管理的有效机制,每个用户至少属于一个主组(创建时默认分配的组,通常与用户名同名),还可以加入多个附加组以获取特定权限集合。groups命令可查看当前用户所属的所有组,cat /etc/group命令可查看系统中所有组的配置信息。
1.3权限类型:文件操作的三重控制
Ubuntu 对文件和目录定义了三种基本权限,每种权限又分别对应文件所有者、所属组和其他用户三类对象:
- 读权限(r):允许查看文件内容或列出目录中的文件
- 写权限(w):允许修改文件内容或在目录中创建 / 删除文件
- 执行权限(x):允许运行可执行文件或进入目录
权限有两种表示方式:字符型(如rwxr-xr--)和数字型(r=4、w=2、x=1)。例如rwxr-xr--对应数字权限 754(所有者 7=4+2+1,所属组 5=4+1,其他用户 4)。
二、root 用户安全配置
在开发板环境中,通常Ubuntu 默认使用 root 用户直接登录,方便测试,但同时也存在安全隐患。这里以我们RK3568评估板为例,为root 用户设置密码,优化登录配置:
2.1root 密码设置
为 root 用户设置强密码可有效防止未授权访问,操作步骤如下:
# 执行密码设置命令passwd root# 系统会提示输入新密码(输入时无字符显示)newpassword:# 再次输入确认密码newpassword:# 出现"passwd: password updated successfully"提示即完成设置
2.2修改登录配置
默认配置中可能存在自动登录的授权参数,需要通过修改系统服务配置文件移除:
# 第一步:备份原始配置文件(关键操作必须先备份)sudocp/etc/systemd/system/serial-getty\@.service.d/override.conf /etc/systemd/system/serial-getty\@.service.d/override.conf.bak# 第二步:编辑备份文件vi /etc/systemd/system/serial-getty@.service.d/override.conf.bak# 文件原始内容[Service]ExecStart=ExecStart=-/sbin/agetty -a root -keep-baud 115200,38400.9600 %I STFRM
# 第三步:移除自动登录参数# 将第二行中的"-a root"参数删除,修改后内容为:[Service]ExecStart=ExecStart=-/sbin/agetty -keep-baud115200,38400.9600%I STFRM
# 第四步:恢复配置文件sudocp/etc/systemd/system/serial-getty@.service.d/override.conf.bak /etc/systemd/system/serial-getty@.service.d/override.conf -f# 第五步:设置服务自启动systemctlenableserial-getty@.service# 第六步:重启系统使配置生效reboot
配置修改后,系统将要求输入密码才能通过串口登录 root 用户,大幅降低未授权访问风险。
三、用户与组的精细化管理
合理的用户和组管理是权限体系的基础,通过命令行工具可实现用户全生命周期的管理。
3.1用户管理核心命令
- 创建用户:sudo adduser 用户名,会自动创建同名主组并提示设置密码
- 删除用户:sudo deluser 用户名(仅删除用户)或sudo deluser --remove-home 用户名(同时删除用户主目录)
- 修改用户密码:sudo passwd 用户名
- 切换用户:su - 用户名("-" 表示切换环境变量,完全切换身份)
3.2组管理核心命令
- 创建组:sudo addgroup 组名
- 删除组:sudo delgroup 组名
- 将用户加入组:sudo usermod -aG 组名 用户名(-a 表示追加,避免覆盖原有组)
- 将用户移出组:sudo gpasswd -d 用户名 组名
- 查看组成员:grep 组名 /etc/group
四、文件与目录权限设置
文件和目录的权限控制是日常操作中最频繁的权限管理场景,掌握相关命令能有效避免权限问题导致的操作失败。
4.1权限的基础修改
- 修改权限(chmod):
# 字符方式:给所有者添加执行权限chmodu+x test.c# 数字方式:设置权限为所有者读写执行,所属组读执行,其他用户只读chmod754 test.c# 递归修改目录及子内容权限chmod-R 755 /data/project
- 修改所有者(chown):
# 修改文件所有者为user1chownuser1 test.c# 同时修改所有者和所属组chownuser1:group1 test.c# 递归修改目录所有者chown-R user1:group1 /data/project
修改所属组(chgrp):
chgrpgroup1 test.c
4.2常见权限问题排查
- "Permission denied" 错误:检查文件权限、所有者和所属组,以及父目录权限
- sudo 命令被拒绝:检查用户是否在 sudo 组或 sudoers 配置
- 服务启动失败:检查服务相关文件权限是否正确,尤其是日志目录和配置文件
结语
Ubuntu 权限管理为系统构建了安全可靠的权限控制体系,通过用户组划分、权限配置到 sudo 精细授权的流程设计,可实现从基础操作到多样场景的安全防护。本文涵盖从核心原理到实战命令的完整解析,开发者可根据实际场景调整权限策略,有效保障系统稳定与数据安全。想了解更多相关技术知识或产品信息,请关注眺望电子公众号并联系我们,我们将竭诚为您服务!
-
操作系统
+关注
关注
37文章
7190浏览量
126190 -
Ubuntu
+关注
关注
5文章
598浏览量
31654 -
权限管理
+关注
关注
0文章
17浏览量
9134
发布评论请先 登录
Windows/Ubuntu安装frida和objection
基于Acegi技术的通用权限管理组件的研究
PCB技术文章精选
【分享】PCB技术文章分享!
ADI首册《技术文章合集》来了,速速拿走~
怎么获取管理员权限?
Ubuntu文件权限管理的相关资料分享
浅谈Linux权限管理的ACL权限
第1期Ubuntu入门篇:【12】Ubuntu文件权限管理

Linux文件权限及Makefile

Linux权限管理基础入门

评论