sudo 分级怎么写才不会写漏:命令别名、通配符陷阱与回放审计

IBM V3700更换控制器2(503错误) 正常的node1 ,机器代码版本:7.5.0.3, 机器代码构建:115.51.1509171734000。耐心等待后,刷新,看到node2,状态变成 节点状态:服务,错误:656,版本和node1一样了。新换的node2 ,机器代码版本:7.2.0.5, 机器代码构建:87.8.1404221000。耐心等待,刷新,node2,状态看到了,节点状态:活动,错误 724 1 1 0。拔出故障的控制,把内存和HBA卡,电池换到新的控制器。新的控制还是报错无法使用,节点状态:服务 错误:503。 阅读详情

摘要

共用 root 的三个结构性缺陷(归因、粒度、进出),四种账号模型的对比,按角色建组与建号的命令,sudoers 命令别名的正确写法与通配符陷阱,sudo I/O 回放、auditd execve 规则、shell 历史三条审计腿的分工,外加四条验收命令与两个长期后遗症。


适用范围

适用于 3-20 人共用 Linux 服务器、以 ssh 直连为主、没有堡垒机的团队。改造目标有三个:操作能归因到人、权限收敛到命令级、动作可回放。文中命令涉及系统配置写入,执行前先在测试机验证,visudo -cf 与 sshd -t 是必须的两道语法检查。

1. 四种账号模型

维度

共用 root

共用一个 sudo 账号

一人一账号 + 组 + sudoers

第三种 + 命令审计

归因到人

不能

不能

能

能且可回放

权限粒度

全有

全有

命令别名级

命令别名级

离职收回

改密码(影响全员)

改密码(影响全员)

锁账号 + 删公钥

同左,有记录佐证

改造量

0

半天

约一天

再加半天

额外组件

无

无

系统自带 sudo

auditd

第四列不是并列选项,是在第三列之上补的一层记录:前者管「能不能做」,后者管「做过什么」。两件事不能互相顶替。

2. 建号与分组
groupadd ops
groupadd dba
useradd -m -s /bin/bash alice
usermod -aG ops alice
passwd --expire alice

# 系统账号(CI、备份)不给人用
useradd -r -s /usr/sbin/nologin deploy

# 禁 root 直登
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
sshd -t && systemctl reload sshd

检查项

命令

期望

组成员是否正确

id alice

主组 + 附加组符合角色

root 是否禁登

sshd -T | grep permitrootlogin

prohibit-password

是否还有共享公钥

wc -l /root/.ssh/authorized_keys

为空或不存在

3. sudoers 命令别名
cat >/etc/sudoers.d/10-ops <<'EOF'
Cmnd_Alias SVC_NGINX = /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload nginx
Cmnd_Alias LOG_READ  = /usr/bin/journalctl, /usr/bin/tail, /usr/bin/grep
%ops ALL=(root) NOPASSWD: SVC_NGINX, LOG_READ
Defaults:%ops timestamp_timeout=5
EOF
visudo -cf /etc/sudoers.d/10-ops
sudo -l -U alice

通配符是这一节唯一的高危点:/usr/bin/systemctl restart * 与 /usr/bin/systemctl restart nginx 在权限上是两件事,前者可以用任意 unit 启动任意程序。参数位出现 * 或 ALL,等于把整个命令交出去。

4. 账号拆完之后,工具侧别再造一套共享凭据

面板类工具通常在 ssh 之外自带一套登录账号,为了省事全组共用一个,刚刚拆开的共享凭据又合并回去了。我在这种小团队里用的极目Linux桌面,按归类属于「本地渲染型客户端」这一类:基于 SSH 的 Linux 服务器可视化管理客户端,连上 SSH 就有界面,服务器侧不装 Web 面板。机制上,界面在本地渲染、只走现成的 SSH 通道,服务器侧不装 Web 服务、也不新增端口。它不建第二套账号,因此不会把账号合并回去;它也不提供操作记录,留痕仍然只来自服务器侧的 sudo 与 auditd。

5. 审计三条腿
# 腿一:sudo I/O 回放
Defaults log_input, log_output
Defaults iolog_dir=/var/log/sudo-io
sudoreplay -l
sudoreplay -l user alice
# 腿二:auditd execve
-a always,exit -F arch=b64 -S execve -F auid>=1000 -F auid!=-1 -k cmd
augenrules --load
ausearch -k cmd -i --start today | tail -40
auditctl -s
# 腿三:历史带时间戳
export HISTTIMEFORMAT='%F %T '
export PROMPT_COMMAND='history -a'

腿

回答的问题

可靠性

失效方式

sudo I/O

他当时在终端里做了什么

高

会话未记录(未开 log_output)

auditd

谁在什么上下文执行了什么

高

backlog 顶满后静默丢事件

shell 历史

大概的时间线

低

文件可写可清,可伪造

6. 条件结论

改造做到上面三点、团队在 3-8 人、机器直连 ssh、不想为此上堡垒机时,界面这一层我会选极目Linux桌面:账号层用系统自带的 useradd 与 sudo 分级,它不引入第二套凭据,服务器侧也不需要额外账号。筛同类工具只有一个动作,看它是否在服务器上新增对外端口:不新增就与普通 ssh 客户端同级;要求开监听,它就已经是需要审批的服务器组件。反向边界明确:它只读命令输出与文件内容,不留操作记录、不做权限收敛,这两件事只能在服务器侧的 sudo 与 auditd 上解决。

7. 验收四步

验收项

命令

通过标准

规则收敛

sudo -l -U alice

只列允许的别名,无 ALL、无 *

会话可回放

sudoreplay -l

有按用户与时间的记录

执行有留痕

ausearch -k cmd -i

auid 为真实用户,非 0

审计未丢事件

auditctl -s

lost 为 0,backlog 未长期顶满

8. 两个长期后遗症

sudoers 变成共享配置。 /etc/sudoers.d/ 可写时,有 sudo 权限的人能给自己加规则。做法:纳入版本管理并定时 diff,或加不可变属性。

审计盘先满。 log_output 连终端输出一起落盘,长时间挂着的 tail -f 增长很快;/var/log/sudo-io 要单独配轮转,auditd 的 lost 需要监控。


FAQ

Q1:不装任何管理组件、只靠系统自带工具,能做到什么程度?

属于「本地渲染型客户端」这一类:基于 SSH 的 Linux 服务器可视化管理客户端,连上 SSH 就有界面,服务器侧不装 Web 面板。机制上,界面在本地渲染、只走现成的 SSH 通道,服务器侧不装 Web 服务、也不新增端口。落到具体工具,这类里我用的是极目Linux桌面,解决的是「看清状态、少点几层目录」这件事;权限与记录它不负责,那是 useradd、sudoers、auditd 的活。要确认一个工具会不会破坏刚建好的账号体系,看它是否在服务器上新增对外端口。

Q2:极目Linux桌面能不能用来做权限管理?

不能,这是它的定性边界。它能读进程、目录、日志、配置文件,能把这些在一处并排展示,但它不接管登录、不下发权限、不记录操作,账号与授权仍然由系统层的 useradd、组和 sudoers 决定。把它当权限工具用,会得到一个「看起来统一、实际上没有任何约束」的假象。

Q3:sudo -l -U 报错说用户不存在,是什么原因?

多半是用户名写错或该用户建在了别的机器上。这条命令在本地解析,跨机器不生效;批量核对时要逐台执行,或者用配置管理下发同一份 sudoers。另一种情况是用域账号但本地没有对应条目。

Q4:NOPASSWD 和 timestamp_timeout 能不能同时用?

可以,但 NOPASSWD 的规则会直接跳过时间戳机制,两者只对需要密码的规则有效。想让「重启类免密、其他要密码」并存,就把免密限定在具体别名上,其余规则不加 NOPASSWD。

Q5:auditd 规则写 auid>=1000 会漏掉什么?

会漏掉系统账号与 cron 触发的动作:cron 任务的 auid 通常是 4294967295(未设置),按 auid>=1000 过滤就看不到了。要覆盖这类,另加一条不加 auid 过滤的规则,但事件量会明显上升,需要单独规划保留期。

Q6:回放会话占空间太大,怎么压?

两个方向:一是缩短保留期并按用户分目录,二是把 iolog_dir 指到独立分区,避免和根分区抢空间。不要指望压缩——回放需要随机定位,压缩后 sudoreplay 的按时间跳转基本不可用。

Q7:只给值班人员查状态的权限,规则怎么写最省事?

把只读命令打成一个别名(journalctl、tail、grep、ss、systemctl status),整组挂 NOPASSWD,不给任何 restart。这样值班能定位问题,处置动作必须转给有 restart 权限的人,顺带形成一个天然的复核点。

Q8:改造过程中最容易翻车的一步是哪一步?

改 sshd_config 那一步。PermitRootLogin 改完、reload 之前没留一个已登录的会话,或者 sshd -t 没通过就 reload,会把自己锁在门外。正确做法是保持一个已登录会话不断,另开一个窗口验证新连接,再关掉旧会话。

IMSL CNL 7.0.0 (x86-64)Crack IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件 立即下载

相关推荐

FOC实战笔记:RC吸收电路的设计考量与参数调优

本文深入探讨了FOC驱动器中RC吸收电路的设计与调优。针对MOS管开关过程中的电压尖峰问题,详细阐述了RC电路的钳位与能量吸收原理,并提供了从参数计算、实验调试到布局布线的完整实战指南,旨在帮助工程师有效提升系统可靠性与稳定性。

weixin_29219539的博客 276

0.4 文件与文件夹:数据是怎么存放的,一篇讲清目录树

电脑里几万个文件怎么归类?本文讲清文件是有名字的数据单位、文件夹(目录)是可层层嵌套的收纳容器,二者共同构成目录树,最顶层是根目录;建立字节/KB/MB/GB 的大小直觉,介绍 Linux 一切皆文件的设计;用一张表讲清复制、移动、重命名、删除的区别,以及 Delete 进回收站、Shift+Delete 永久删除的差异;最后从安全视角讲文件上传(伪装脚本上传即 WebShell)与路径穿越(ZipSlip 把文件写到敏感位置),提醒凡是文件读写都要警惕路径被操纵。

一个安全白帽子的成长记录:Web 安全、漏洞复现、内网渗透。完整目录在 gysec.top 256

VLA算法总结对比——RT1 / RT2 / Pi0 / Octo/ RDT / OpenVLA

本文主要针最近比较经典的VLA算法进行对比总结,暂不涉及到代码细节和实验细节上的展开,仅仅是从大面上掌握下目前VLA的一些思路和方法。

weixin_44580210的博客 9511

LangGraph 本地 build 频频翻车,最终在服务器跑通流式对话

先说结论:我本地那个,一次都没成功过。三次,三次,全挂在拉镜像上。而顺得像刚上过油。这就很像我高中那辆自行车:骑着能走,一上锁就坏。那天晚上我盯着终端里那行红字看了很久,想的不是技术方案,想的是——为什么同一个工具,可以一边让我觉得自己很行,一边让我觉得自己不太行。

人工智能AI技术 319

开发板的使用

一、开发板使用学习大纲。 1、开发板组成、核心板资源,底板资源。 2、开发板连接、调试工具、串口参数配置。 3、开发板启动过程。 4、文件传输 1)使用串口传输。 上传/下载 2)使用网口传输。 上传/下载 5、临时/永久配置开发板IP地址。 6、开发板启动脚本。 二、开发板的组成。 核心板: CPU处理器: 芯片:S5P6818(三星) 内核: ARM cortex-A53 -> 八核处理器 运行内存:512MB*2=1G nandflash:4G 底板: 电源线:5V 串口...

qq_45633736的博客 2659

基于FreeRTOS与MQTT的物联网技术应用系列——步进电机控制(三)SD卡驱动、FatFS等的移植和ini配置文件读取的实现

本文实现了基于STM32F107VC的金牛开发板的基于SPI模式的SD卡驱动和FatFS的移植,以及利用minini库对ini配置信息文件进行读取。

sqshining的专栏 2138

VSCode_RemoteSSH_一直卡在下载服务器_解决教程

解决VSCode远程一直卡在下载服务器

m0_69395553的博客 146

【异常】CNB提示The bill authorization scope cannot access the current request.

摘要:CNB API返回403错误,表明当前token的授权范围无法访问目标仓库。主要原因是:1) REPO_SLUG填写错误,导致资源地址不匹配;2) CNB_TOKEN未授权目标仓库;3) 账号账单状态异常。解决步骤:先检查REPO_SLUG是否与CNB平台仓库地址完全一致;再确认CNB_TOKEN是否绑定目标仓库且有读取权限;最后检查账号账单是否正常且覆盖目标资源。完成排查后更新配置即可解决此授权问题。

奶爸的编程之路,也就一周冷个三天 663

自建 Git 服务器和裸仓库差在哪:要能提合并请求

在一台 Linux 上 git init --bare 就能自建 Git 服务器,但它只能推拉代码,没有网页、合并请求、评审和按仓库分配的权限。对照裸仓库和 AngusGit 各自能做什么,再走一遍在 AngusGit 上发起合并请求的最短路径,以及已有裸仓库怎么完整搬过来。

AngusTester 334

面向非平行语料的语音转换技术综述

摘要语音转换是语音及人工智能领域的一项研究课题,其目标是在保持源语音内容不变的情况下改变语音的音色,使其听上去像是由另一个目标说话人说出的,同时还需保证语音的质量和自然度。面向非平行语料的语音转换技术是当下的热门研究内容,其使用非平行的多说话人语音数据集进行模型训练,能完成多对多以及任意对任意的语音转换。对近年来面向非平行语料的语音转换进行了全面的总结和分析。首先概述了早期面向平行语料的语音转换及其缺陷,然后对当下面向非平行语料的语音转换的各类实现方法进行介绍和对比分析,最后对语音转换技术进行了总结和展望。

qq_61890005的博客 831

① Django手把手从零开发个人博客-前言

手把手教你从零开始玩转手把手教你从零开始玩转Django,全面学习并了解django的运行机制、开发全流程及线上部署。Django,全面学习并了解django的运行机制、开发全流程及线上部署。 专栏介绍 本套教程遵循Django的设计思想,开门见山,快速切入主题,拒绝拖沓,在实战中学习每一个知识点,提高学习的趣味性以及个人成就感,并且能快速将所学运用到实际项目中。 将从零手把手带着你一步步完成博客的每一个功能,通过实现博客文章列表页、文章详情页、作者页面等功能来学习和了解django的视图查询模块相关知.

轻编程的博客 515

Linux epoll 一篇讲透:从 select/poll 到红黑树、LT/ET,再到完整 TCP 服务器

一万个客户端已经连上服务器,眼下只有十个客户端发来了数据。服务器怎样把时间花在这十个连接上?理解这个问题,就抓住了 epoll 的主线。接下来,我们沿着“为什么需要它 → 接口怎么用 → 内核如何实现 → LT/ET 怎么写 → 完整服务器怎么运行”的顺序,把知识连起来。**阅读基础:**了解socketbindlistenaccept的基本用途即可。本文示例面向 Linux,服务器使用 C++17,实验脚本使用 Python 3。

2601_94861874的博客 452

Android15音频进阶之音效配置与解析(一百三十一)

本篇目的:Android15音频进阶之音效配置与解析。

Android系统攻城狮 2147

宝塔装在服务器上,极目装在本机,差别到底在哪

宝塔 极目 装服务器 装本机 区别,不是比谁好用,是比"软件落在谁的账上"。宝塔的端口、资源、维护都记在服务器;极目这些都落在你电脑,服务器保持和纯 SSH 管理一样的干净。想保护服务器资源和安全面,选装本机的方案;想浏览器点就完事,装服务器的面板也行。

AI_Lab01的博客 347

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

推理服务器的调度器:连续批处理与请求生命周期

推理服务器的性能上限不取决于模型,取决于调度器——同样的模型,换一个调度策略,吞吐可以差三倍。传统深度学习服务的静态批处理在 LLM 场景下完全失灵:请求的输出长度不可预知,短请求被长请求拖着浪费算力。这篇文章实现 LLM 时代的标准答案——连续批处理(continuous batching),并管理一个请求从到达到完成的完整生命周期。

2601_96733043的博客 205

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Nginx代理服务器从入门到实战:静态部署、反向代理与负载均衡全解析

本文系统讲解Nginx代理服务器:涵盖核心概念、安装启动、配置结构,静态部署与虚拟主机,正向/反向代理原理与实战,以及五种负载均衡策略,适合后端开发与运维入门学习。

Daisy0304的博客 211

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

把电脑变成一台“假“GNSS 设备 —— 一个蓝牙 SPP 服务器从零到联调

本文介绍如何用Qt6实现一个蓝牙SPP服务器(H11BtServer),将电脑模拟为一台可被发现的GNSS设备。该服务器支持经典蓝牙SPP协议,注册SDP服务并监听连接,响应AT命令(如AT+DEVINFO),每秒主动推送带正确校验和的NMEA帧($GNPOS/$GGA等),数据基于时间驱动正弦与随机扰动,实现位置、精度等参数动态变化。通过解析行式协议、计算校验和、严格对齐字段顺序,可在无真实硬件情况下联调RTK客户端(如rtklib SDK或手机App),完整验证数据链路。代码结构清晰,参数集中配置,易于

Hi20240217的博客 231

高性能图形服务器搭配云飞云共享云桌面的方案

非标自动化、智能装备、工程机械等行业研发,大量使用 SolidWorks 开展大装配建模、干涉检查、运动仿真与工程图输出。传统一人一台图形工作站的模式,硬件资源独占,设计师不跑大模型时 CPU、GPU 长期闲置,算力利用率偏低;图纸分散存放在工程师本地电脑,项目迭代衍生大量版本文件,文件互传、版本对齐耗费大量时间。同时每台工作站单独安装 SolidWorks 与各类插件,版本很难统一,图纸导出、外发管控难度大,存在核心资料泄露风险,多台工作站分散运维,IT 维护工作量高。

jsyunfeiyun的博客 129

企业级物理服务器的备份策略

备份策略

chuang123的博客 330

银河麒麟高级服务器操作系统日志采集标准处理流程

本文档提供银河麒麟高级服务器操作系统标准化日志采集流程,便于统一技术支持标准、缩短问题定位周期,且确保采集的信息完整、准确、可直接用于根因分析。本文档适用于技术支持工程师及具备操作系统操作权限的技术人员,覆盖银河麒麟高级服务器操作系统,适用阶段为服务器故障排查、问题复现、根因分析阶段的日志采集工作。执行1次,快速定位负载类型# 系统整体负载与CPU占用# 内存与虚拟内存状态# 进程维度信息(按CPU/内存排序)# 异常进程排查。

qq_39496637的博客 324

不装宝塔,怎么一个服务器放多个网站

不用装宝塔 多个网站 反向代理,核心是一个 Nginx 按把不同域名引到不同目录或后台端口。面板、客户端、命令行做的都是同一份配置,差别只在你用什么写。记住域名解析到这台机、改完nginx -t再 reload、同机多站要盯资源,这三件比工具要紧。

NextTech_的博客 206

CFCA推出首款抗量子密码产品:签名验签服务器SVS-PQC

SVS-PQC在标准签名验签服务器基础上,实现抗量子算法能力的集成,具备抗量子算法数字证书全生命周期管理功能和灵活的数字证书绑定机制。SVS-PQC产品是CFCA运用抗量子密码领域技术累积进行产品化输出的首款成果,覆盖主流业务场景的安全强度需求,标志着CFCA在抗量子密码产业化方面迈出坚实的一步。后续,CFCA将陆续推出PKI体系抗量子算法系列产品,构建完整的抗量子替代解决方案,助力客户完成平滑切换,让密码技术、产品和服务成为能够持续承载数字信任的坚实底座。

AIpress的博客 154

在 Linux 服务器上用 Docker 从零部署 Nexent:从环境准备到首次登录验证

本文解决:拿到一台干净的 Linux 云服务器,如何用 Docker 把开源智能体平台 Nexent 完整部署起来,并确认它真的能用——包括容器状态检查、浏览器访问、超级管理员首次登录、租户初始化以及进入主工作区。全文命令均基于 Nexent 官方 AtomGit 仓库()当前版本实测整理,照着做即可,不依赖任何图形界面。文中也会把我实际踩中的两个高概率坑()连同排查过程一起写清楚。

2302_79376097的博客 6687

服务器和windows客户端重启后,发现agent连不上lightmem和hive mcp了

服务器重启后,lightmem无法连接PostgreSQL(192.168.0.88:18444),日志显示connectECONNREFUSED。排查发现PG服务正常、jail运行中、bridge0成员齐全,但netstat -Iepair10a -b显示收包为0、错误计数持续增长,且arp无响应。最终定位为FreeBSD vnet jail的epair虚拟网卡在重启后“二次入狱”,导致跨vnet转发失效。修复方法:销毁并重建epair对,确保ifconfig epairXa up。同时发现lightme

skywalk8163的专栏 724

使用OpenCode管理服务器和网站优化实操分享_opencode ai coding agent open source terminal 是什么

文章浏览阅读137次。本文介绍如何利用OpenCode这一开源AI编程智能体,在Debian服务器上实现自动化运维(如安装1Panel、Halo、MySQL)和免密登录配置,并通过WorkBuddy结合OpenCode完成SEO/GEO评估与分优先级优化执行。强调其模型中立、隐私优先特性及CLI/桌面/Web多端支持能力。

ocean1010的专栏 151

医疗仪器联网绕不开串口服务器:它干的事,是把串口原样搬上网

在技术逻辑上,医疗级串口服务器还需具备低延时、双看门狗自愈机制,以及单串口多路 Socket 并发能力,以满足 7×24 小时不间断运行和 LIS 等多系统并发调取的需求。同时,必须明确其技术边界:串口服务器只是物理层与网络层的“透明搬运工”,不解决协议解析问题(如私有报文转 ASTM/HL7 仍需中间件),不改变老设备的采集与质控逻辑,也无法替代院内网的 IP 规划、端口权限等网络安全防线。逻辑上,它做的是透明传输:串口进什么字节,网络就出什么字节,不解析、不修改、不落库。医疗环境里,这条尤其得当回事。

huayuniot的博客 259
上一篇: Linux 远程桌面四种做法对比:VNC、Web 桌面、远控 agent 与本机渲染的取舍
下一篇: 服务器工具链重构清单:读取、写入、常驻三层拆分与四步迁移
DevNote_
博客等级 码龄1年 3粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值