【运维实战】Linux 中设置 sudo ,8个有用的 sudoers 配置!

news2025/6/2 8:57:13

在Linux及其他类Unix操作系统中,只有 root 用户能够执行所有命令并进行关键系统操作,例如安装更新软件包、删除程序、创建用户与用户组、修改重要系统配置文件等。

但担任 root 角色的系统管理员可通过配置sudo命令,允许普通系统用户执行特定命令及完成上述重要系统操作。另一种不推荐的方式是直接共享 root 用户密码,使普通用户能通过su命令获取 root 账户权限。

sudo的功能是依据安全策略,允许授权用户以 root(或其他用户)身份执行命令,其工作机制如下

1)读取并解析/etc/sudoers文件,核查调用用户及其权限;

2)提示输入密码(通常为当前用户密码,也可设置为目标用户密码。若配置NOPASSWD标签则可跳过此步骤);

3)接着sudo创建子进程,在其中调用setuid()切换至目标用户;

4)最后在该子进程中执行指定的shell或命令。

下文将通过 8 个/etc/sudoers文件配置示例,展示如何利用默认条目修改sudo命令行为。

[admin@monitor ~]$ sudo cat /etc/sudoers
[sudo] admin 的密码:
1.设置安全 PATH

为了确保系统的安全性,sudo 提供了配置选项来管理 PATH 环境变量,以防止潜在的安全风险。

它的重要性如下:

1)防止恶意路径注入:如果用户能够通过 PATH 环境变量注入恶意路径,可能会导致执行非预期的命令或脚本,从而引发安全问题。

2)隔离用户和 root 的路径:通过设置安全的 PATH,可以确保 sudo 命令运行时使用的是系统定义的安全路径,而不是用户可能修改的路径。

要设置安全的 PATH,需要在 sudoers 文件中添加以下内容:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

这样,secure_path 指定了 sudo 命令运行时使用的路径。

如果需要定义 exempt_group,可以添加类似以下的行:

Defaults:%exempt_group !secure_path

这样,属于 exempt_group 的用户在使用 sudo 时,将不受 secure_path 的限制,而是使用它们自己的 PATH 环境变量。

2.启用TTY用户登录会话的sudo权限

若需限制 sudo 仅能在真实终端(tty)会话中调用,而禁止通过cron计划任务或cgi-bin脚本等方式执行,可添加如下配置项:

Defaults  requiretty
3.通过伪终端(pty)执行sudo命令

某些情况下,攻击者可能利用 sudo 运行恶意程序(如病毒或恶意软件),这些程序会派生后台进程并持续驻留在用户的终端设备上,即使主程序已执行完毕。

为防止此类情况,可通过use_pty参数强制 sudo 始终在伪终端中执行命令(无论是否启用I/O日志功能),配置示例如下:

Defaults  use_pty
4.配置自定义sudo日志文件

默认情况下,sudo 通过syslog(3)记录日志。如需指定自定义日志文件,可使用logfile参数配置:

Defaults logfile="/var/log/sudo.log"  

若需在日志中记录主机名和四位数的年份,可分别添加log_hostlog_year参数:

Defaults log_host, log_year, logfile="/var/log/sudo.log"  
5.记录sudo 命令的输入/输出

通过 log_input 和 log_output 参数,可以让 sudo 在伪终端(pseudo-tty)中运行命令,并分别记录所有用户输入和屏幕输出。

默认的 I/O 日志目录是 /var/log/sudo-io,如果启用了会话序列号,日志会存储在该目录下。也可以使用 iolog_dir 参数自定义日志目录。

Defaults   log_input, log_output

支持一些转义序列,例如 %{seq},它会扩展为单调递增的 36 进制序列号(例如 000001),每两位数字用于形成一个新的目录层级,例如在以下示例中的 00/00/01

$ cd /var/log/sudo-io/
$ ls
$ cd  00/00/01
$ ls
$ cat log
6.设置 sudo 用户提示信息

通过 lecture 参数可向使用 sudo 的用户显示系统密码使用规范提示。该参数支持以下三种配置方式:

  • always:每次执行 sudo 命令时都显示提示

  • once:仅在用户首次执行 sudo 时显示提示(默认值)

  • never:不显示提示

配置示例:

Defaults lecture="always"  

如需自定义提示内容,可通过 lecture_file 参数指定包含提示信息的文件路径:

Defaults lecture_file="/path/to/custom_message"  
[imoonrong@backup2 ~]$ sudo ll

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] imoonrong 的密码:
7.自定义 sudo 密码错误提示信息

当用户输入错误的 sudo 密码时,系统默认会显示"sorry, try again"提示。可以通过 badpass_message 参数修改该提示内容,配置示例如下:

Defaults  badpass_message="Password is wrong, please try again"
或者
Defaults  badpass_message="密码错误,请重新输入"
8.增加 sudo 密码尝试次数限制

passwd_tries 参数用于指定用户尝试输入密码的次数。默认值为 3,现在将尝试次数修改为 5:

Defaults passwd_tries=5

若要设置密码超时时间(默认为 5 分钟),可以使用 passwd_timeout 参数,添加以下行(比如,设为2分钟):

Defaults passwd_timeout=2

上面介绍了 8 条配置 sudoers 的实践技巧,那么 su 和 sudo 之间有何区别,以及如何在 Linux 中配置 sudo,接下来会进一步介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2393474.html

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

相关文章

江科大SPI串行外设接口hal库实现

hal库相关函数 初始化结构体 typedef struct {uint32_t Mode; /*SPI模式*/uint32_t Direction; /*SPI方向*/uint32_t DataSize; /*数据大小*/uint32_t CLKPolarity; /*时钟默认极性控制CPOL*/uint32_t CLKPhase; /*…

[网页五子棋][对战模块]前后端交互接口(建立连接、连接响应、落子请求/响应),客户端开发(实现棋盘/棋子绘制)

文章目录 约定前后端交互接口建立连接建立连接响应针对"落子"的请求和响应 客户端开发实现棋盘/棋子绘制部分逻辑解释 约定前后端交互接口 对战模块和匹配模块使用的是两套逻辑,使用不同的 websocket 的路径进行处理,做到更好的耦合 建立连接 …

【ArcGIS Pro微课1000例】0071:将无人机照片生成航线、轨迹点、坐标高程、方位角

文章目录 一、照片预览二、生成轨迹点三、照片信息四、查看方位角五、轨迹点连成线一、照片预览 数据位于配套实验数据包中的0071.rar,解压之后如下: 二、生成轨迹点 地理标记照片转点 (数据管理),用于根据存储在地理标记照片文件(.jpg 或 .tif)元数据中的 x、y 和 z 坐…

Ubuntu Zabbix 钉钉报警

文章目录 概要Zabbix警监控脚本技术细节配置zabbix告警 概要 提示:本教程用于Ubuntu ,zabbix7.0 Zabbix警监控脚本 提示:需要创建一个脚本 #检查是否有 python3 和版本 rootzabbix:~# python3 --version Python 3.12.3在/usr/lib/zabbix/…

threejs顶点UV坐标、纹理贴图

1. 创建纹理贴图 通过纹理贴图加载器TextureLoader的load()方法加载一张图片可以返回一个纹理对象Texture,纹理对象Texture可以作为模型材质颜色贴图.map属性的值。 const geometry new THREE.PlaneGeometry(200, 100); //纹理贴图加载器TextureLoader const te…

STM32 RTC实时时钟\BKP备份寄存器\时间戳

一、Unix时间戳 想要计算当地北京时间,需要根据经度和闰年之类的运算得到(c语言里面可以调用time.h的函数) 二、UTC/GMT(科普) 三、时间戳转化 C语言的time.h模块提供了时间获取和时间戳转换的相关函数,可以方便的进行秒计数器、…

Axure设计案例——科技感立体柱状图

想让你的数据展示告别平淡无奇,成为吸引全场目光的焦点吗?快来瞧瞧这个Axure设计的科技感立体柱状图案例!科技感设计风格借助逼真的立体效果打破传统柱状图的平面感,营造出一种令人眼前一亮的视觉震撼。每一个柱状体都仿佛是真实存…

app获取相册权限是否意味着所有相片都可随时读取?

针对安卓手机相册的隐私安全问题,我也比较好奇,App授予了相册权限,真的能自动读取用户的照片吗?最近做了一个小实验,我开发了2个小App,这2个App安装的时候只授予了相册权限,没有授予其他任何权限…

2025年05月29日Github流行趋势

项目名称:agenticSeek 项目地址url:https://github.com/Fosowl/agenticSeek项目语言:Python历史star数:11898今日star数:2379项目维护者:Fosowl, steveh8758, klimentij, ganeshnikhil, apps/copilot-pull-…

第十一节:第一部分:正则表达式:应用案例、爬取信息、搜索替换

正则表达式介绍 String提供的正则表达式的方法的书写规则 正则表达式总结 正则表达式作用: 作用三:搜索替换 案例分析及代码(图片解析) 代码: 代码一:校验手机号和邮箱格式是否正确 package com.itheima.…

新能源集群划分+电压调节!基于分布式能源集群划分的电压调节策略!

适用平台:MatlabYalmip Cplex (具体操作已在程序文件中说明) 参考文献:基于分布式能源集群化分的电压调节策略[D]. 一、文献解读 1. 主要内容/创新点 提出了一种基于分布式能源集群化的电压调节策略,计及分布式能源的有功、无功调节能力&a…

端午安康 | 以匠心,致长远

端午节快乐 值此端午佳节,数图衷心感谢每一位合作伙伴与客户的信任相伴。 我们专注每一处细节,如粽米般紧密凝聚; 我们携手共进共赢,似龙舟竞渡般齐心协力。 未来,我们愿继续以创新为桨,与您共划时代新篇…

漫画Android:事件分发的过程是怎样的?

当用户触摸屏幕时,硬件层会捕获触摸信号,并将其转化为内核事件。 Android系统会通过InputManagerService和WindowManagerService等服务将这些事件包装成MotionEvent对象,并将其传递给Activity的dispatchTouchEvent()方法中,Activi…

2022 RoboCom 世界机器人开发者大赛-本科组(省赛)解题报告 | 珂学家

前言 题解 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)。 感觉T5是最简单的,其他都不好做。 RC-u5 树与二分图 分值: 30分 思路: 容斥原理 树天然就是二分图,按深度d归类(偶数深度为S1,奇数深度为S2)&#x…

如何用ChatGPT提升学术长文质量

目录 一、关于让人工智能充当评审专家 二、关于分批次输入论文内容 三、来看看提示词 大家好这里是学术Anan,官网👉AIWritePaper~ 论文完成初稿之后,一般情况下,宝子们还需要找专家给我们提出评审意见。找专家评审其实并不容易…

BKP(备份寄存器)和 RTC(实时时钟)

什么是BKP? 备份寄存器(BackupRegister)是42个16位的寄存器(不同设备存在差异:20字节(中容量和小容量)/84字节(大容量和互联型)),可用来存储 最多…

【EdgeYOLO】《EdgeYOLO: An Edge-Real-Time Object Detector》

Liu S, Zha J, Sun J, et al. EdgeYOLO: An edge-real-time object detector[C]//2023 42nd Chinese Control Conference (CCC). IEEE, 2023: 7507-7512. CCC-2023 源码:https://github.com/LSH9832/edgeyolo 论文:https://arxiv.org/pdf/2302.07483 …

调试技巧总结

目录 一.调试1.什么是调试2.调试语义的分类2.1 静态语义2.2 动态语义 二.实用的调试技巧1.屏蔽代码2.借助打印3.查看汇编代码4.调试技巧总结 一.调试 1.什么是调试 调试,通俗易懂地说就是不断排查代码的错误,进行修正的过程,在写代码的时候…

ubuntu安装blender并配置应用程序图标

ubuntu安装blender并配置应用程序图标 下载blender安装包解压缩并安装启动blender添加应用程序启动图标 下载blender安装包 blender中文服务站的下载网址 这里选择Linux 64位的Blender 4.2.4 LTS。下载速度很快。下载得到 解压缩并安装 将下载的压缩包放在/opt目录下&#…

基于LBS的上门代厨APP开发全流程解析

上门做饭将会取代外卖行业成为新一轮的创业风口吗?杭州一位女士的3菜一汤88元套餐引爆社交网络,这个包含做饭、洗碗、收拾厨房的全套服务,正在重新定义"到家经济"的边界。当25岁的研究生系着围裙出现在客户厨房,当年轻姑…