如何在Linux下通过深度联合配置Pam_Securetty与Sudoers彻底终结Root账号在全网的所有不合规直接操作痕迹

风强大大_9039

风强大大_9039

2026-06-08

592人浏览

原创

要真正切断root账号全网不合规操作路径,须协同落地pam_securetty终端拦截、sudoers权限委托及系统登录通道封堵:清空/etc/securetty熔断所有交互式登录;在/etc/sudoers中移除root默认权限并强制目标用户密码验证;通过pam_listfile.so在login/sshd中叠加黑名单校验;最终root仅存于passwd中作符号标识,所有管理行为均由实名运维账号发起并完整审计。

如何在linux下通过深度联合配置pam_securetty与sudoers彻底终结root账号在全网的所有不合规直接操作痕迹

要真正切断 root 账号在全网范围内的不合规直接操作路径,不能只靠单一手段,必须把 pam_securetty 的终端级拦截、sudoers 的权限委托机制、以及系统层的登录通道封堵三者协同落地。核心逻辑是:让 root 既无法交互式登录(任何终端、VNC、SSH),也无法被非授权用户提权调用,同时确保所有管理行为可追溯、可审计、有明确责任主体。

一、清空并锁定 /etc/securetty 实现 root 终端登录熔断

该文件是 pam_securetty.so 模块的白名单开关,清空即等效于“拒绝所有 tty”。此操作影响 login、getty、gdm/kdm/xdm、VNC 启动的图形会话等所有需要分配真实或伪终端的登录场景。

  • 执行命令彻底禁用 root 终端入口:
    sudo mv /etc/securetty /etc/securetty.bak && sudo touch /etc/securetty && sudo chmod 600 /etc/securetty
  • 验证是否生效:切换到普通用户后执行 su -,输入 root 密码应提示 Authentication failure;VNC 登录 root 也会卡在认证环节
  • 注意:此操作不影响 su -c 或 sudo 执行命令,仅阻断交互式 shell 分配

二、在 /etc/sudoers 中剥离 root 权限并强制最小化授权

不是“允许谁用 sudo”,而是“禁止 root 被任何方式间接调用”。关键在于取消 root 用户自身在 sudoers 中的默认隐式权限,并通过 Defaults targetpw 和 Defaults runaspw 强制每次提权都需验证目标用户密码(含 root)——但前提是 root 已无法登录,所以实际只会验证管理员账户密码。

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 使用 sudo visudo 编辑,删除或注释掉类似 root ALL=(ALL:ALL) ALL 的行
  • 添加全局策略限制:
    Defaults targetpw<br>Defaults runaspw<br>Defaults !tty_tickets

    (最后一条避免同一用户多终端重复输密)
  • 为运维账号(如 admin)单独授权,且限定命令范围:
    admin ALL=(ALL) NOPASSWD: /usr/bin/systemctl start nginx, /usr/bin/journalctl -u sshd

三、配合 PAM 全局拦截 root 在 login/sshd/gdm 等服务中的残留入口

即使 securetty 已空,某些服务(如旧版 VNC Server、自定义 getty)可能绕过 pam_securetty。需在服务级 PAM 配置中叠加 pam_listfile.so 黑名单校验,实现双重保险。

  • 创建禁止用户列表:
    echo "root" | sudo tee /etc/security/denied-users && sudo chmod 600 /etc/security/denied-users
  • 在 /etc/pam.d/login 和 /etc/pam.d/sshd 开头插入:
    auth [user_unknown=ignore success=ok default=bad] pam_listfile.so onerr=succeed item=user sense=deny file=/etc/security/denied-users
  • 该规则含义:若当前登录用户名在黑名单中,立即返回失败;user_unknown=ignore 避免非 root 用户因配置错误被误拒

四、验证与收口:确认 root 已完全“不可见、不可达、不可用”

完成上述配置后,root 不再是一个“可用账户”,而是一个仅存在于 /etc/passwd 中的符号标识。所有管理动作必须经由明确命名的运维账号发起,并留下完整 sudo 日志(默认记录在 /var/log/auth.log 或 /var/log/secure)。

  • 测试 SSH 登录:ssh root@host 应直接拒绝连接或报 Permission denied
  • 测试本地终端:Ctrl+Alt+F2 进入 tty2,输入 root 密码应无响应或报错
  • 测试 VNC:vncviewer host:1 登录 root,应在认证阶段失败,日志中可见 pam_listfile 或 pam_securetty 拒绝记录
  • 检查 sudo 日志:sudo grep "root.*COMMAND" /var/log/auth.log 应为空;所有有效提权均归属 admin 等实名账号

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3870

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3333

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2473

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5950

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5582

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3293

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2785

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3019

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习