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

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

原文链接:信创系统 sudoers 权限配置实战!从小白到高手

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.mrgr.cn/news/100523.html

相关文章:

  • 【Unity完整游戏开发案例】从0做一个太空大战游戏
  • 罗伯·派克:Go语言创始者的极客人生
  • 【Java面试题02】Java 集合常见面试题
  • 【数据结构】哈希表
  • 如何搭建spark yarn模式的集群
  • Qt中的全局函数讲解集合(全)
  • gem5-gpu教程03 当前的gem5-gpu软件架构(因为涉及太多专业名词所以用英语表达)
  • 刷刷刷刷刷RCE
  • 初识Redis · 哨兵机制
  • git检查提交分支和package.json的version版本是否一致
  • 【Linux应用】开发板快速上手:镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互(RADXA ZERO 3为例)
  • Python+Selenium+Pytest+Allure PO模式UI自动化框架
  • Java 富文本转word(支持水印)
  • 关于Spring Boot构建项目的相关知识
  • ubuntu 安装ollama后,如何让外网访问?
  • 继续 那个错误分析
  • JVM常见的垃圾回收器
  • 网络:手写HTTP
  • cocos creator使用jenkins打包流程,打包webmobile
  • Python3:Jupyter Notebook 安装和配置