当前位置: 首页 > news >正文

信创系统 sudoers 权限配置实战!从小白到高手

好文链接:实战!银河麒麟 KYSEC 安全中心执行控制高级配置指南

Hello,大家好啊!今天给大家带来一篇关于信创终端操作系统中 sudoers 文件详解的实用文章!在 Linux 系统中,sudo 是一项非常重要的权限控制机制,它允许普通用户以其他用户(通常是 root)身份执行指定的命令。而 sudo 的行为规则,全部由 /etc/sudoers 文件来定义和管理。正确理解和配置 sudoers 文件,不仅能提升系统管理的安全性,也能让权限分配更加灵活高效。本文将全面讲解 sudoers 文件的结构、写法、典型配置示例及最佳实践。欢迎大家分享点赞,点个在看和关注吧!

1.什么是 sudoers 文件?

/etc/sudoers 是 sudo 工具的主配置文件。它定义了哪些用户或用户组可以使用 sudo,能以谁的身份执行哪些命令,以及是否需要输入密码等行为细节。

sudoers 文件必须由 root 用户通过专门的编辑工具 visudo 修改,确保语法正确,避免因配置错误导致系统无法使用 sudo。

注意:直接用普通文本编辑器(如 vim 或 nano)打开 /etc/sudoers 是不安全的,必须用 visudo。

2.sudoers 文件基本语法结构

一条典型的规则格式为:

用户或用户组 主机 = (以谁的身份) [是否免密码] 允许执行的命令

各部分含义:

*部分**说明*
用户或用户组指定用户名或以 %组名 表示的用户组
主机指定在哪些主机上有效,通常填写 ALL
(以谁的身份)指定以哪个用户身份执行命令,常用 (ALL) 或 (root)
[是否免密码]NOPASSWD: 表示免密码;不写则默认需要输入密码
允许执行的命令指定具体允许执行的命令,必须使用绝对路径

3.常见配置示例

3.1 创建普通用户

作用:在系统中新增一个名为 pdsyw1024 的普通用户,默认无管理员(sudo)权限。

img

3.2允许用户执行所有命令(需输入密码)

pdsyw@pdsyw-PC:~/Desktop$ sudo visudo
​
pdsyw1024 ALL=(ALL) ALL

用户 pdsyw1024 在所有主机上,可以以任何身份执行任何命令,但执行时需要输入密码。

img

pdsyw1024@pdsyw-PC:~$ sudo apt install nginx

解释:用户 pdsyw1024 现在可以用 sudo 安装软件,比如安装 nginx,执行前会要求输入自己的登录密码。

img

3.3 允许用户执行特定命令且免密码

pdsyw@pdsyw-PC:~/Desktop$ sudo visudo
​
pdsyw1024 ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

用户 pdsyw 可以直接重启 nginx 服务,无需输入密码,且只能执行指定命令。

img

pdsyw1024@pdsyw-PC:~$ sudo systemctl restart nginx
​
pdsyw1024@pdsyw-PC:~$ sudo systemctl stop nginx
​
对不起,用户 pdsyw1024 无权以 root 的身份在 pdsyw-PC 上执行 /usr/bin/systemctl stop nginx。

解释:用户只能重启 nginx服务,无法停止、启动或管理其他服务。

这是限制最小权限原则的体现。

img

3.4 给用户组统一授权

pdsyw@pdsyw-PC:~/Desktop$ sudo usermod -aG pdsyw pdsyw1024 
​
pdsyw@pdsyw-PC:~/Desktop$ id pdsyw1024 
​
uid=1001(pdsyw1024) gid=1001(pdsyw1024) 组=1001(pdsyw1024),7(lp),100(users),109(netdev),117(lpadmin),119(scanner),997(sambashare),1000(pdsyw)

含义:把用户 pdsyw1024 加入到 pdsyw 用户组中(-aG表示追加到新组,不影响原有组)。

img

pdsyw@pdsyw-PC:~/Desktop$ sudo visudo
​
%pdsyw ALL=(ALL) ALL

pdsyw 组内的所有用户,拥有 sudo 所有权限。

注意:组名前必须加 % 符号。

含义:% 表示用户组,赋予 pdsyw 组内所有成员完全的 sudo 权限,执行任何命令,需要输入密码。

img

pdsyw1024@pdsyw-PC:~$ sudo systemctl stop nginx
​
pdsyw1024@pdsyw-PC:~$ sudo systemctl restart nginx
​
pdsyw1024@pdsyw-PC:~$ sudo apt install nginx

解释:属于 pdsyw 组的用户可以正常用 sudo 执行各类系统管理命令。

img

3.5允许执行多个特定命令

pdsyw@pdsyw-PC:~/Desktop$ sudo visudo
​
pdsyw1024 ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl stop nginx

含义:允许 pdsyw1024 免密码执行重启和停止 nginx 的命令,中间用逗号分隔多个命令。

img

pdsyw1024@pdsyw-PC:~$ sudo systemctl restart nginx
​
pdsyw1024@pdsyw-PC:~$ sudo systemctl stop nginx
​
pdsyw1024@pdsyw-PC:~$ sudo systemctl start nginx
​
对不起,用户 pdsyw1024 无权以 root 的身份在 pdsyw-PC 上执行 /usr/bin/systemctl start nginx。

解释:用户只能执行被列出的特定命令,不能超出范围,比如无法执行 start nginx。

img

4.使用 /etc/sudoers.d/ 子文件进行权限管理(推荐)

为了提高管理灵活性,推荐将 sudo 配置拆分成子文件,存放在 /etc/sudoers.d/ 目录下。

操作步骤:

新建子文件并编辑(用 visudo 检查语法):

pdsyw@pdsyw-PC:~/Desktop$ sudo visudo -f /etc/sudoers.d/pdsyw1024
​
pdsyw1024 ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

作用:在 /etc/sudoers.d/ 目录下,专门为 pdsyw1024 单独建一个规则文件,便于权限管理、维护和审计。

含义:只允许重启 nginx,免密码。

img

pdsyw@pdsyw-PC:~/Desktop$ sudo chmod 440 /etc/sudoers.d/pdsyw1024

作用:保证子文件权限是 -r--r-----(即 0440),符合 sudo 要求,防止文件被随意修改。

img

pdsyw1024@pdsyw-PC:~$ sudo systemctl start nginx
​
对不起,用户 pdsyw1024 无权以 root 的身份在 pdsyw-PC 上执行 /usr/bin/systemctl start nginx。
​
pdsyw1024@pdsyw-PC:~$ sudo systemctl restart nginx
​
pdsyw1024@pdsyw-PC:~$ sudo systemctl stop nginx
​
对不起,用户 pdsyw1024 无权以 root 的身份在 pdsyw-PC 上执行 /usr/bin/systemctl stop nginx。

解释:用户权限依然受到严格限制,只能执行授权的命令。

img

好处:

避免直接修改主 sudoers 文件,降低误操作风险。

按用户、应用、角色单独管理权限,更清晰、更规范。

系统维护、配置审计更方便。

5.sudoers 文件中常用的 Defaults 配置

Defaults 行可以用来调整 sudo 的全局默认行为。

常见示例:

*配置**含义*
Defaults env_reset清空大部分环境变量,防止环境污染
Defaults timestamp_timeout=30设置 sudo 密码缓存时间,单位分钟(30分钟内不用重复输入)
Defaults insults密码输错时显示幽默提示(娱乐用)
Defaults !requiretty允许在无终端(比如脚本里)使用 sudo

例如:

pdsyw@pdsyw-PC:~/Desktop$ sudo visudo
​
Defaults timestamp_timeout=15

表示 sudo 密码输入一次后,15分钟内免输。

img

6.安全注意事项

*注意事项**说明*
始终使用 visudo 编辑防止语法错误导致系统无法使用 sudo
指定命令时使用绝对路径必须写完整路径,例如 /usr/bin/systemctl,不能只写命令名
权限最小化原则只授权必要命令,避免给予过大权限
不滥用通配符/usr/bin/* 等宽泛规则容易引发安全漏洞
保持子文件权限为 0440防止未授权用户篡改 sudo 配置

小结:

/etc/sudoers 是 Linux 系统中 sudo 权限的核心配置文件。

正确使用 sudoers 可以精确控制普通用户的操作权限,提升系统安全性。

推荐通过 /etc/sudoers.d/ 子文件进行分模块管理,规范又安全。

编辑时务必使用 visudo 工具,确保配置无误。

良好的 sudo 权限管理,不仅能有效提升系统运维效率,也是保障系统安全不可或缺的重要措施。

附录:常见命令参考

*操作**命令*
打开 sudoers 主文件sudo visudo
编辑 sudoers 子文件sudo visudo -f /etc/sudoers.d/用户名
查看命令绝对路径which 命令名
设置文件权限为 0440sudo chmod 440 /etc/sudoers.d/文件名

正确配置 /etc/sudoers,是保障 信创终端操作系统 安全性和运维效率的重要步骤。

本文结合 dde-printer 组件操作实例,讲解了从基础到进阶的完整配置方式,包含:

语法规则

用户与组授权

子文件管理

安全最佳实践

掌握这些技巧,能够帮助大家在日常管理中更加规范、灵活、安全地使用 sudo!

如果你觉得这篇文章对你有帮助,欢迎点赞、转发、点个在看~我们下次再见!

http://www.xdnf.cn/news/185509.html

相关文章:

  • Spring 与 ActiveMQ 的深度集成实践(三)
  • ARP协议(地址解析协议)
  • Unreal Niagara制作Scratch随模型发射粒子特效
  • Make学习二:makefile组成要素
  • 基于STM32、HAL库的ADS1115模数转换器ADC驱动程序设计
  • 驱动开发硬核特训 · Day 22(上篇): 电源管理体系完整梳理:I2C、Regulator、PMIC与Power-Domain框架
  • ByeCode,AI无代码开发平台,拖拽式操作构建应用
  • OpenFeign 自定义拦截器
  • 基于javaweb的SpringBoot在线电子书小说阅读系统设计与实现(源码+文档+部署讲解)
  • Java详解LeetCode 热题 100(02):LeetCode 49. 字母异位词分组(Group Anagrams)详解
  • 一、接口测试01
  • 基于Python Flask的深度学习电影评论情感分析可视化系统(2.0升级版,附源码)
  • 简单的 shell 程序
  • 德州仪器(TI)—TDA4VM芯片详解—目录
  • 十七、系统可靠性分析与设计
  • Vue3 + OpenLayers 开发教程 (六)WebGL渲染优化
  • 【Nova UI】十二、打造组件库之按钮组件(上):迈向功能构建的关键一步
  • Linux系统类型及常用操作命令总结
  • Linux一个系统程序——进度条
  • QT中的事件及其属性
  • 大学之大:伦敦政治经济学院2025.4.27
  • onnexruntime u2net sharp 实现开源图片处理软件
  • vue 打包设置
  • DFPatternFunctor遍历计算图
  • 【博客系统】博客系统第一弹:博客系统项目配置、MyBatis-Plus 实现 Mapper 接口、处理项目公共模块:统一返回结果、统一异常处理
  • 关于华为高斯数据库出现Invalid or unsupported by client SCRAM mechanisms定位解决的过程
  • -信息革命-
  • OpenManus云端部署及经典案例应用
  • 心磁图技术突破传统局限!心血管疾病早筛迈入“三零“新时代
  • TV launcher官方下载-tv launcher汉化版-tv桌面启动器极简下载