信创系统 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.mzph.cn/web/77440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《明解C语言入门篇》读书笔记四

目录 第四章:程序的循环控制 第一节:do语句 do语句 复合语句(程序块)中的声明 读取一定范围内的值 逻辑非运算符 德摩根定律 德摩根定律 求多个整数的和及平均值 复合赋值运算符 后置递增运算符和后置递减运算符 练习…

vite+vue2+elementui构建之 vite.config.js

webpack版本太低,构建依赖太多,头大。 各种查阅资料,弄了一份直通构建vite构建elementUi核心文件, 构建基于开源若依vue2vue3版本改造,感谢开源,感谢若依。 package.json 地址 vitevue2elementui构建之…

超参数详解:从基础概念到优化策略的全面指南

摘要 本文深入解析机器学习中超参数的核心概念,详细对比参数与超参数的本质区别,系统介绍学习率、隐含层数量等常见超参数类型,以及网格搜索、贝叶斯优化等主流寻优方法。结合超参数搜索的标准流程,通过具体案例演示如何高效调整…

计算机视觉与深度学习 | LSTM原理及与卡尔曼滤波的融合

长短期记忆网络(LSTM)是一种特殊的循环神经网络(RNN),旨在解决传统RNN在处理长序列数据时出现的梯度消失和梯度爆炸问题。以下为你详细介绍其基本原理: 核心思想:LSTM的核心思想是引入记忆单元和门控机制来控制信息的流动,从而解决传统RNN的梯度消失问题。记忆单元类似…

EXCEL常用函数公式和VBA汇总第二篇

系列文章目录 文章目录 系列文章目录前言一、excel公式应用1.rand函数2.rand函数随机排序3.rand函数提取数据4.correl函数5.SUBSTITUTE函数6.MAX组合函数7.分析下班时间8.柏拉图自动排序 总结 前言 一、excel公式应用 1.rand函数 用excel生成1-5的随机数字,其中对…

iOS 类与对象底层原理

iOS 类与对象底层原理 文章目录 iOS 类与对象底层原理探索对象本质objc_setProperty 源码cls与类的关联原理联合体isa的类型isa_t 原理探索initIsa方法通过setClass方法中的shiftcls来验证绑定的一个流程通过 isa & ISA_MSAK通过object_getClass通过位运算 类&类的结构…

浮点数:IEEE 754标准

IEEE 754 标准是一种由电气和电子工程师协会(IEEE)制定的浮点数表示的标准,广泛应用于计算机系统中,下面是详细介绍: 历史背景 在 IEEE 754 标准出现之前,不同的计算机系统采用各自的浮点数表示方法&…

centos7部署k8s集群

环境准备 服务器三台 10.0.0.70master 10.0.0.71worker1 10.0.0.72worker2 配置yum源(集群机器执行) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 安装常用软件 yum -y install lrzsz vim net-tools关闭f…

第三方软件检测报告:热门办公软件评估及功能表现如何?

第三方软件检测报告是重要文件。它用于对软件做专业评估。能反映软件各项性能。能反映软件安全性等指标。该报告为软件使用者提供客观参考。该报告为软件开发者提供客观参考。有助于发现问题。还能推动软件改进。 检测概述 本次检测针对一款热门办公软件。采用了多种先进技术…

Linux:41线程控制lesson29

1.线程的优点: • 创建⼀个新线程的代价要⽐创建⼀个新进程⼩得多 创建好线程只要调度就好了 • 与进程之间的切换相⽐,线程之间的切换需要操作系统做的⼯作要少很多 为什么? ◦ 最主要的区别是线程的切换虚拟内存空间依然是相同的&#x…

【MCP】从一个天气查询服务带你了解MCP

1. 前言 这篇文章将通过一个集成高德天气查询的 MCP Server 用例,带你上手开发自己的 MCP Server ,文章将通过以下三种方式(自己编写 Client 端代码,使用 mcp-cli 自带页面,集成到 Claude 桌面版等)带你测试自己的 MC…

SHCTF-REVERSE

前言 之前写的,一直没发,留个记录吧,万一哪天记录掉了起码在csdn有个念想 1.ezapk 反编译 快速定位关键函数 package com.mycheck.ezjv;import adrt.ADRTLogCatReader; import android.app.Activity; import android.content.Context; impo…

安卓触摸事件分发机制分析

1. 前言 🎯 一句话总结: 触摸事件(TouchEvent)会从 Activity 层开始,按从外到内的方式传递给每一个 ViewGroup/View,直到某个 View 消费(consume) 它,事件传递就会停止…

Spring MVC 多个拦截器的执行顺序

一、流程总览 该流程图描述了一个多层拦截器链的业务处理流程,核心逻辑为: 前置拦截:通过 predHandler1 和 predHandler2 逐层校验请求合法性。核心处理:通过校验后执行核心业务逻辑 handler()。后置处理与清理:按反…

django filter 排除字段

在Django中,当你使用filter查询集(QuerySet)时,通常你会根据模型的字段来过滤数据。但是,有时你可能想要排除某些特定的字段,而不是过滤这些字段。这里有几种方法可以实现这一点: 使用exclude方…

ByeCode,AI无代码开发平台,拖拽式操作构建应用

ByeCode是什么 ByeCode 是一款先进的 AI 无代码平台,旨在帮助企业迅速创建数字名片、网站、小程序、应用程序及内部管理系统,无需繁杂的编码或开发工作。ByeCode 采用直观的可视化界面和拖拽式操作,使得非技术用户能够轻松上手。同时&#x…

AI日报 - 2025年04月28日

🌟 今日概览(60秒速览) ▎🤖 能力进展 | Gemini 2.5 Pro成功挑战《口袋妖怪红》8道馆;AI推理器具备自我纠错能力;LLM在游戏、多模态理解、代码迁移等方面展现新能力。 ▎💼 商业动向 | Google回应DOJ反垄断案&#xff…

在Java中实现List按自定义顺序排序的几种方案

在Java中实现List按自定义顺序排序的几种方案 在实际开发中&#xff0c;我们经常需要对集合中的对象按照特定字段进行排序。当排序规则不是简单的字母或数字顺序&#xff0c;而是自定义的顺序时&#xff0c;我们需要采用特殊的方法。本文将以一个List<Person>按省份特定…

微服务架构在云原生后端的深度融合与实践路径

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:后端架构的演变,走向云原生与微服务融合 过去十余年,后端架构经历了从单体应用(Monolithic)、垂直切分(Modularization)、到微服务(Microservices)的演进,每一次变化都是为了解决…

Python中的Walrus运算符分析

Python中的Walrus运算符&#xff08;:&#xff09;是Python 3.8引入的一个新特性&#xff0c;允许在表达式中同时赋值和返回值。它的核心作用是减少重复计算&#xff0c;提升代码简洁性。以下是其适用的典型场景及示例&#xff1a; 1. 在循环中避免重复计算 当循环条件需要多次…