如何在Linux中限制su命令 Linux pam_wheel组控制

限制su命令能有效提升系统安全性,通过pam_wheel模块配置仅允许wheel组用户使用su,实现最小权限原则,减少攻击面,强化审计与责任制,防止未授权提权和误操作。

如何在linux中限制su命令 linux pam_wheel组控制

在Linux系统中,限制

su

命令的使用,特别是通过

pam_wheel

模块进行组控制,是一种非常直接且有效的安全加固措施。它能确保只有经过授权的用户才能切换到其他用户身份,尤其是root用户,从而大大降低未授权提权的风险。

说实话,每次提到Linux权限管理,我心里总会嘀咕几句:安全和便利性,这俩货总是像天平两端,很难找到一个完美的平衡点。但对于

su

命令的限制,我觉得这天平是明显偏向安全的,而且代价并不高。

pam_wheel

模块就是我们实现这一目标的关键。它的核心思想很简单:只有属于特定“轮子组”(wheel group)的用户,才被允许使用

su

命令。这就像给特权操作加了一道门禁,只有持有“门禁卡”的人才能进去。

具体操作起来,主要分几步:

编辑PAM配置: 我们需要修改

su

命令的PAM配置文件。这个文件通常位于

/etc/pam.d/su

。在编辑之前,强烈建议你备份一下原始文件,以防万一。

sudo cp /etc/pam.d/su /etc/pam.d/su.baksudo vim /etc/pam.d/su

找到类似下面这行(或者没有这行,需要手动添加):

#auth           required        pam_wheel.so use_uid

将其取消注释,或者如果你想更严格一点,可以这样配置:

auth            required        pam_wheel.so use_uid group=wheel

这里的

group=wheel

明确指定了只有

wheel

组的用户才能使用

su

。如果你想用一个自定义的组名,比如

sudoers

,那就把

wheel

改成

sudoers

。我个人习惯用

wheel

,因为它在很多发行版里是约定俗成的特权组。

use_uid

参数意味着

pam_wheel

会检查当前用户的UID,而不是目标用户的UID。

创建或确认“轮子组”: 大多数Linux发行版默认都有一个名为

wheel

的组。如果没有,你需要手动创建一个:

卡拉OK视频制作 卡拉OK视频制作

卡拉OK视频制作,在几分钟内制作出你的卡拉OK视频

卡拉OK视频制作 178 查看详情 卡拉OK视频制作

sudo groupadd wheel

你可以通过

cat /etc/group | grep wheel

来检查它是否存在。

将授权用户添加到“轮子组”: 这是最关键的一步。只有被添加到这个组的用户,才能使用

su

sudo usermod -aG wheel your_username

your_username

替换为你想要授权的用户名。

-aG

参数很重要,

-a

表示添加到附加组,

-G

指定组名,这样不会覆盖用户原有的主组。

保存并测试: 保存

/etc/pam.d/su

文件后,配置就会立即生效。你可以用一个不在

wheel

组的用户尝试

su -

,它应该会被拒绝。然后用一个在

wheel

组的用户尝试,它应该能成功。

这套流程走下来,你就能对

su

命令的使用权限进行精细化控制了。在我看来,这种“白名单”式的管理方式,远比“黑名单”更让人安心。

限制su命令能有效提升系统安全性吗?

当然,这几乎是一个不言自明的肯定答案。在我这么多年的系统管理经验中,限制

su

命令的使用,绝对是提升系统安全性最直接、最有效的一招。这不仅仅是技术操作,更是安全哲学的一种体现——最小权限原则

想想看,如果任何一个普通用户都能通过

su

命令尝试切换到

root

,那意味着什么?这意味着一旦某个普通用户的密码被破解,或者用户本身被社工,攻击者就能轻易地尝试提权到

root

。这简直是给攻击者敞开了一扇大门。

限制

su

命令,特别是通过

pam_wheel

这种方式,实际上是在构建一道屏障:

减少攻击面: 不是所有用户都有能力或需要执行特权操作。将

su

的使用权限定在少数几个可信的管理员账户上,就大大缩小了潜在的攻击入口。即使一个普通用户账户被攻陷,攻击者也无法通过

su

直接尝试提权,因为他们不在

wheel

组里。强化审计和责任制: 当只有特定用户能使用

su

时,任何通过

su

进行的特权操作都能更容易地追溯到具体的人。这在团队协作环境中尤为重要,谁做了什么,一目了然。如果每个人都能

su

root

,那一旦出了问题,责任很难界定。防止误操作: 有时候,安全问题并非来自恶意攻击,而是源于无意的错误。一个不熟悉命令的普通用户,如果被允许

su

root

,一个不小心就可能执行一些破坏性的

以上就是如何在Linux中限制su命令 Linux pam_wheel组控制的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/428811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
java 怎么创建一个对象数组
上一篇 2025年11月7日 12:53:49
VSCode适合初学者的原因及优势
下一篇 2025年11月7日 12:53:56

相关推荐

  • Flink项目实践 | Flink 单机安装部署

    Flink项目实践 | Flink 单机安装部署Flink项目实践 | Flink 单机安装部署Flink项目实践 | Flink 单机安装部署Flink项目实践 | Flink 单机安装部署

    apache flink 是一个用于对无界和有界数据流进行状态计算的框架和分布式处理引擎。flink 设计旨在所有常见集群环境中运行,并以内存速度和任意规模进行计算。 为了深入了解 Flink,首先需要搭建其运行环境。 Flink 可以在所有类似 UNIX 的环境中运行,包括 Linux,Mac O…

    2026年9月23日 用户投稿
    200
  • VSCode配置MacOS C环境 详细图解VSCode搭建C++开发

    在mac++os上用vscode配置c/c++环境的关键是安装xcode command line tools以获取clang编译器和lldb调试器,然后安装vscode的c/c++扩展,接着创建项目文件夹和源文件,通过配置tasks.json定义编译任务,确保使用clang编译当前文件并生成可执行…

    2026年9月23日
    100
  • Springboot项目引入xxl-job

    要将xxl-job集成到spring boot项目中,可以按照以下步骤进行操作: 首先,从Gitee拉取xxl-job的源码,并将其配置为Docker镜像部署到服务器上。 # 执行Maven打包mvn clean install构建Docker镜像,镜像名称中不允许使用下划线docker build…

    2026年9月23日
    000
  • Java javac 命令与当前工作目录解析

    在Java编译环境中,javac命令的“当前目录”指的是命令被执行的物理位置,而非源文件所在的目录。理解这一概念对于正确配置和管理Java项目的编译路径至关重要,特别是当默认的classpath设置为.时,它决定了编译器查找类文件的起点。 1. javac 命令与当前工作目录的定义 在操作系统中,当…

    2026年9月23日
    100
  • Bash Shell 中单引号和双引号的区别

    Bash Shell 中单引号和双引号的区别Bash Shell 中单引号和双引号的区别Bash Shell 中单引号和双引号的区别Bash Shell 中单引号和双引号的区别

    在 linux 命令行中,引号是处理文件名中的空格和特殊字符的常用工具。引号在 shell 脚本中具有“特殊功能”,可能让初学者感到困惑。让我们详细探讨不同类型的引号字符及其在 shell 脚本中的用法。 有四种不同类型的引号字符: 单引号 ‘双引号 “反斜杠 反引号 ` 除…

    2026年9月23日 用户投稿
    500
  • Linux中如何查看服务日志?journalctl与syslog使用指南

    Linux中如何查看服务日志?journalctl与syslog使用指南Linux中如何查看服务日志?journalctl与syslog使用指南Linux中如何查看服务日志?journalctl与syslog使用指南Linux中如何查看服务日志?journalctl与syslog使用指南

    排查linux服务问题时,首选journalctl或syslog类系统查看日志。journalctl适用于systemd系统,可查看内核消息、服务启动输出等,支持按时间、单元、优先级过滤;syslog适用于传统系统,需服务主动发送日志,支持集中管理。掌握两者使用能有效定位问题。 在Linux系统中排…

    2026年9月23日 用户投稿
    100
  • VSCode 如何自定义编辑器的选中内容颜色 VSCode 编辑器选中内容颜色的自定义教程​

    自定义vscode选中颜色需在settings.json中修改workbench.colorcustomizations,关键属性包括editor.selectionbackground(鼠标拖选色)、editor.wordhighlightbackground(单词高亮色)、editor.word…

    2026年9月23日
    100
  • Reflection AI 完成 20 亿美元融资,打造“开放智能”

    美国人工智能初创企业 reflection ai 宣布成功募集 20 亿美元资金,其中英伟达领衔投资 8 亿美元,推动公司估值跃升至 80 亿美元。这家成立仅一年的科技新星,致力于打造“人人可及的前沿开放智能(open intelligence)”。 Reflection AI 表示,已集结一支由顶…

    2026年9月23日
    500
  • win11开机PIN码登录选项消失了怎么办_win11PIN码登录选项丢失修复方法

    首先尝试切换登录方式重置PIN,若无效则通过命令提示符启用管理员账户,再检查本地组策略设置并清除NGC文件夹以重建PIN凭据,最终恢复PIN登录功能。 如果您尝试在Windows 11开机时使用PIN码登录,却发现登录选项中缺少PIN码入口,这通常是由系统临时故障、策略设置或账户同步问题导致的。此问…

    2026年9月23日
    000
  • mysql安装完如何优化 mysql基础性能调优配置建议

    mysql安装完如何优化 mysql基础性能调优配置建议mysql安装完如何优化 mysql基础性能调优配置建议mysql安装完如何优化 mysql基础性能调优配置建议mysql安装完如何优化 mysql基础性能调优配置建议

    安装完 mysql 后需进行基础配置调优以提升性能,主要包括以下五点:1. 设置 innodb_buffer_pool_size 为物理内存的50%~80%,如16g内存可设为12g;2. 调整 max_connections 至合理并发数如500,并设置 wait_timeout 和 intera…

    2026年9月23日 用户投稿
    400
  • [272]如何把Python脚本导出为exe程序

    [272]如何把Python脚本导出为exe程序[272]如何把Python脚本导出为exe程序[272]如何把Python脚本导出为exe程序[272]如何把Python脚本导出为exe程序

    文章目录:一. PyInstaller简介二. PyInstaller在Windows下的安装三. 打包四. 小实例(Windows下) 附加:pyinstaller简介 PyInstaller能够将Python脚本打包成可执行程序,使得在没有Python环境的机器上也可以运行这些程序。 PyIns…

    2026年9月23日 用户投稿
    100
  • VSCode搭建Flutter开发环境(移动开发,完整配置指南)

    本文详细指导如何在VSCode中搭建高效的Flutter开发环境,包括安装JDK、配置JAVA_HOME、安装Android Studio并设置ANDROID_HOME、安装VSCode及Flutter和Dart插件、配置FLUTTER_HOME环境变量,通过flutter doctor检查并解决A…

    2026年9月23日
    100
  • 如何使用Optuna优化AI大模型训练?自动化调参的详细教程

    如何使用Optuna优化AI大模型训练?自动化调参的详细教程如何使用Optuna优化AI大模型训练?自动化调参的详细教程如何使用Optuna优化AI大模型训练?自动化调参的详细教程如何使用Optuna优化AI大模型训练?自动化调参的详细教程

    Optuna通过智能搜索与剪枝机制,显著提升AI大模型超参数优化效率。它以目标函数封装训练流程,利用TPE等算法智能采样,结合ASHA等剪枝策略,在分布式环境下高效搜索最优配置,同时提供可复现性与可视化分析,降低调参成本。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 Dee…

    2026年9月23日 用户投稿
    100
  • 渗透测试|利用curl回传文件

    在处理低权限shell回传文件的问题时,如果无法使用scp命令且无法安装sshpass,可以考虑使用curl命令进行文件传输。以下是详细的伪原创内容: 至少我们曾经在一起过。 来自:一言 var xhr = new XMLHttpRequest();xhr.open(‘get’, ‘https://…

    2026年9月23日
    200
  • VSCode如何配置Scala开发环境 VSCode搭建Scala项目的完整教程

    首先安装jdk 11或17并正确配置java_home和path环境变量;2. 通过包管理器或官网安装sbt,用于项目构建与依赖管理;3. 在vscode中安装scala (metals)插件,以获得代码补全、错误检查等语言服务;4. 使用sbt new scala/scala-seed.g8创建项…

    2026年9月23日
    100
  • 无代码调整聚类热图分支顺序

    无代码调整聚类热图分支顺序无代码调整聚类热图分支顺序无代码调整聚类热图分支顺序无代码调整聚类热图分支顺序

    聚类热图的分支结构会因不同的聚类算法和距离计算方式而有所不同。在保持分支结构不变的前提下,我们有时需要调整热图分支的顺序,以满足特定的需求。这就是文章聚类热图如何按自己的意愿调整分支顺序的出发点。 现在,这种功能已经移植到BIC平台,具体操作如下: 使用之前的绘图数据: 采用默认的绘图参数: 生成的…

    2026年9月23日 用户投稿
    300
  • mysql如何输入特殊字符 mysql写sql语句的转义方法

    mysql如何输入特殊字符 mysql写sql语句的转义方法mysql如何输入特殊字符 mysql写sql语句的转义方法mysql如何输入特殊字符 mysql写sql语句的转义方法mysql如何输入特殊字符 mysql写sql语句的转义方法

    在mysql中处理特殊字符的核心方法是使用预处理语句,1.手动转义可通过反斜杠实现,如单引号转为’、双引号转为”等,但易出错且不安全;2.更推荐使用预处理语句(prepared statements)或参数绑定,它能自动处理特殊字符并防止sql注入;3.预处理语句的优势包括安全性高,彻底杜绝sql注…

    2026年9月23日 用户投稿
    400
  • Java中ConnectException连接异常的解决方法

    答案:Java中ConnectException通常因服务未启动、网络不通或配置错误导致,需检查服务状态、IP端口配置及防火墙设置,并合理设置连接超时与重试机制。 Java中出现ConnectException通常表示应用程序尝试连接到远程服务器时失败,最常见的原因是目标主机拒绝连接或网络不通。这个…

    2026年9月23日
    200
  • VSCode高效配置Elixir:Phoenix框架、中文提示、模式匹配

    要高效配置vscode支持elixir开发,必须安装elixirls扩展并确保elixir和erlang环境正确;elixirls提供代码补全、跳转、格式化和调试功能,配合手动设置.heex、.leex文件关联为html可优化phoenix框架开发体验;通过安装中文语言包、设置files.encod…

    2026年9月23日
    200
  • 如何在RayTune中训练AI大模型?分布式超参数优化的技巧

    如何在RayTune中训练AI大模型?分布式超参数优化的技巧如何在RayTune中训练AI大模型?分布式超参数优化的技巧如何在RayTune中训练AI大模型?分布式超参数优化的技巧如何在RayTune中训练AI大模型?分布式超参数优化的技巧

    RayTune通过分布式超参数优化解决大模型训练中的资源调度、搜索效率、实验管理与容错难题,其核心是利用并行化和智能调度(如ASHA、PBT)加速最优配置探索。首先,将训练逻辑封装为可调用函数,并在其中集成分布式训练(如PyTorch DDP);其次,定义超参数搜索空间与资源需求(如每试验2 GPU…

    2026年9月23日 用户投稿
    100

发表回复

登录后才能评论
关注微信