Linux禁止非WHEEL用户使用SU命令

通常情况下,一般用户通过执行“su -”命令、输入正确的root密码,可以登录为root用户来对系统进行管理员级别的配置。

       但是,为了更进一步加强系统的安全性,有必要建立一个管理员的 组,只允许这个组的用户来执行“su -”命令登录为root用户,而让其他组的用户即使执行“su -”、输入了正确的root密码,也无法登录为root用户。在UNIX和Linux下,这个组的名称通常为“wheel”。

一、禁止非whell组用户切换到root
1、 修改/etc/pam.d/su配置

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. [root@db01 ~]# vi /etc/pam.d/su ← 打开这个配置文件  
  2. #auth required /lib/security/$ISA/pam_wheel.so use_uid      ← 找到此行,去掉行首的“#”  


2、 修改/etc/login.defs文件

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. [root@db01 ~]# echo “SU_WHEEL_ONLY yes” >> /etc/login.defs ← 添加语句到行末以上操作完成后,可以再建立一个新用户,然后用这个新建的用户测试会发现,没有加入到wheel组的用户,执行“su -”命令,即使输入了正确的root密码,也无法登录为root用户  


 

3、 添加一个用户woo,测试是否可以切换到root

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. [root@db01 ~]# useradd woo  
  2. [root@db01 ~]# passwd woo  
  3. Changing password for user woo.  
  4. New UNIX password:   
  5. BAD PASSWORD: it is WAY too short  
  6. Retype new UNIX password:   
  7. passwd: all authentication tokens updated successfull  

 

4、通过woo用户登录尝试切换到root   

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. [woo@db01 ~]$ su - root           ← 即使密码输入正确也无法切换  
  2. Password:   
  3. su: incorrect password  
  4. [woo@db01 ~]$   

 

5: 把root用户加入wheel组再尝试切换,可以切换

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. [root@db01 ~]# usermod -G wheel woo    ← 将普通用户woo加在管理员组wheel组中  
  2. [root@db01 ~]# su - woo  
  3.   
  4. [woo@db01 ~]$ su - root           ←  这时候我们看到是可以切换了     
  5. Password:   
  6. [root@db01 ~]#       

 

二、添加用户到管理员,禁止普通用户su到root
6、添加用户,并加入管理员组,禁止普通用户su到root,以配合之后安装OpenSSH/OpenSSL提升远程管理安全

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. [root@db01 ~]# useradd admin  
  2. [root@db01 ~]# passwd admin  
  3. Changing password for user admin.  
  4. New UNIX password:   
  5. BAD PASSWORD: it is too short  
  6. Retype new UNIX password:   
  7. passwd: all authentication tokens updated successfully.  
  8.   
  9.   
  10. [root@db01 ~]# usermod -G wheel admin   (usermod -G wheel admin 或 usermod -G10 admin(10是wheel组的ID号))  
  11. [root@db01 ~]# su - admin  
  12. [admin@db01 ~]$ su - root  
  13. Password:   
  14. [root@db01 ~]#   

 

方法一:wheel组也可指定为其它组,编辑/etc/pam.d/su添加如下两行

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. [root@db01 ~]# vi /etc/pam.d/su  
  2. auth sufficient /lib/security/pam_rootok.so debug  
  3. auth required /lib/security/pam_wheel.so group=wheel   

 

方法二:编辑/etc/pam.d/su将如下行#符号去掉

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. [root@db01 ~]# vi /etc/pam.d/su  
  2. #RedHat#auth required /lib/security/$ISA/pam_wheel.so use_uid   ← 找到此行,去掉行首的“#”  
  3. #CentOS5#auth required pam_wheel.so use_uid   ← 找到此行,去掉行首的“#”  

 

#保存退出即可============

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. [root@db01 ~]# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs ← 添加语句到行末  


 

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

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

相关文章

代理的JavaOne 2016观察

我无法参加JavaOne 2016,因此很高兴在线上看到大量资源,这些资源使我能够基于JavaOne 2016内容进行观察。 我在本文中引用并简要描述了其中的一些JavaOne 2016资源,并根据这些资源的使用添加了我自己的一些观察结果。 正如Katharine在JavaOne…

resnet过拟合_重读经典:完全解析特征学习大杀器ResNet

公众号关注 “ML-CVer”设为 “星标”,DLCV消息即可送达!作者丨刘昕宸知乎来源丨https://zhuanlan.zhihu.com/p/268308900编辑丨极市平台导读 通过堆叠神经网络层数(增加深度)可以非常有效地增强表征,提升特征学习效果,但是会出现…

Java开发笔记(二十三)数组工具Arrays

数组作为一种组合形式的数据类型,必然要求提供一些处理数组的简便办法,包括数组比较、数组复制、数组排序等等。为此Java专门设计了Arrays工具,该工具包含了几个常用方法,方便程序员对数组进行加工操作。Arrays工具的方法说明如下…

生成对抗网络gan原理_必读!TOP10生成对抗网络GAN论文(附链接)

来源:新智元本文约2200字,建议阅读7分钟。本文所选论文提供了一个易读的对GAN的介绍,帮助你理解GAN技术的基础。[ 导读 ]生成对抗网络 (GAN) 是深度学习中最有趣、最受欢迎的应用之一。本文列出了 10 篇关于 GAN 的论文,这些论文将…

visudo精确用户赋权(sudo)

原文BLOG:http://iminmin.blog.51cto.com/689308/455992sudo” 是 Unix/Linux 平台上的一个非常有用的工具,允许为非根用户赋予一些合理的 “ 权利 ” ,让他们执行一些只有根用户或特许用户才能完成的任务,从而减少根用户的登陆次…

es6中的类及es5类的实现

目录 类的特点类的特点 1.类只能通过new得到 在es6中类的使用只能是通过new,如果你将它作为一个函数执行,将会报错。 //es6的写法 class Child {constructor() {this.name 1;} } let child new Child(); console.log(child.name)//1 //如果直接…

python高阶函数filter_Python进阶系列连载(13)——Python内置高阶函数filter(上)...

前言进阶部分连载继续~如果还没看过我的入门连载部分,先看:当然,小编的免费入门课程已经有咯,看过连载的朋友可以看看视频再快速梳理一遍~前文传送门:filterfilter是什么意思呢?我们百度看看:百…

javaone_JavaOne 2012:观察与印象

javaone我正坐在旧金山国际机场等待登上一架飞机,然后又一次满意但累人的JavaOne(2012)体验,开始撰写这篇特别的博客文章。 自上周日的主题演讲以来,在会议上狂热地撰写了约30篇博客文章之后,再写另一篇博客…

CSDN转载博客的方法

前言 对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面&#xff0c…

linux 服务器账号及安全杂谈

1、useradd zhangsan,添加zhangsan用户后,不能交互式登陆该账号。 原因是:/etc/shadow中内容是 zhangsan:!!:16804:0:99998:7::: 其中,两个!!表示出于安全角度,不能登陆。给zhangsan设置密码后,就可以登陆…

mysql-9索引

mysql索引的建立对于mysql的高效运行是很重要的,索引可以大大提高mysql的检索速度。 索引分为单列索引和组合索引。 单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。 组合索引,即一个索…

带有AWS Lambda和Java的无服务器FaaS

什么是无服务器架构? 无服务器架构在由第三方完全管理的临时容器中运行自定义代码。 自定义代码通常只是完整应用程序的一小部分。 也称为函数 。 这为无服务器架构提供了另一个名称,即功能即服务 (FaaS)。 该容器是短暂的&#x…

python 查找算法_七大查找算法(Python)

查找算法 -- 简介查找(Searching)就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素。查找表(Search Table):由同一类型的数据元素构成的集合关键字(Key):数据元素中某个数据项的值,又称为键值主键(Primary K…

traceroute命令的用法实例

ceroute命令的用法实例traceroute 跟踪数据包到达网络主机所经过的路由工具;traceroute 是用来发出数据包的主机到目标主机之间所经过的网关的工具。traceroute 的原理是试图以最小的TTL发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自…

去除div最后一个逗号_去除重复值、统计数量,这个公式可以直接套用!

点击上方蓝字关注星标★不迷路本文作者:拉登 Dony来源:拉小登(ID:ladengchupin)本文编辑:小叮、竺兰前段时间遇到这样一个问题,让我很头疼。头疼的原因有 3 点:❶ 问题描述不清晰,理解起来困难&…

spring shell_Spring Shell项目发布

spring shellSpring Source昨天发布了Spring Shell 。 Spring Shell是一个交互式Shell,可以使用基于Spring的编程模型轻松地通过命令进行扩展。 它是通过删除OSGi依赖项从Spring Roo项目中提取的,并变成了一个独立项目。 这使得那些只希望使用交互式外壳…

Word报告自动生成(例如 导出数据库结构)

将很早之前写的一个小组件重新整理优化一下,做成一个通用的功能。适用于导出数据库的结构(表、字段等)到Word或将体检数据自动生成Word版的体检报告等。代码:Github 一、主要需要完成功能: 1. 灵活的配置规则及word样式设置&#…

马尔科夫随机场

1、相关概念 马尔科夫随机过程:在已知当前状态的情况下,未来的状态只与当前状态有关,与过去状态无关。这种已知“现在”的条件下,“未来”和“过去”彼此独立的特性叫做马尔科夫性,具有这种特性的随机过程叫做马尔科夫…

php上传文件详解

上传文件功能由两个部分组成&#xff0c;HTML页面和PHP处理部分。HTML页面主要是让用户选择所要上传的文件&#xff0c;php部分让我们可以把文件存储到服务器的指定目录。 一&#xff0e;HTML部分 upload.html [html] view plaincopy<html> <head> &…

pythonwhile循环love_input和while循环——Python编程从入门到实践

PythonPython开发Python语言input和while循环——Python编程从入门到实践input( )input()函数&#xff1a;让程序运行暂停&#xff0c;等待用户输入。message input(Tell me something, and I will repeat it back to you:)print(message)运行结果&#xff1a;Tell me somethi…