linux如何开启root权限控制,Linux下的Root权限控制
Linux是当前比较流行的网络服务器操作系统,它继承了UNIX系统安全、稳定、高效等优点.在Linux系统中Root拥有最高权限,正因如此攻击者往往以获取Root权限为目标.作为管理员如何有效地对Root进行有效管理呢?本文将从权限控制的角度,提供几个安全技巧.
演示环境
Red Hat Enterprise Linux 5
1、远程登录
我们知道在RHEL系统中,默认是允许Root用户直接远程登录的.假若攻击者获取了Root的密码,然后进行远程登录,那整个服务器就沦陷了.因此,我们要做好Root的权限限制,拒绝其远程登录.这样,就算攻击者获取了Root密码,也不能通过远程登录控制服务器.限制Root远程登录的方法有很多种,笔者向大家推荐两种.
(1)SSH限制
我们知道SSH是Linux系统中用于远程维护管理的一个服务,类似于Windows系统中的Telnet或者远程桌面3389.通过SSH限制Root远程登录,我们需要做的就是修改SSH的配置文件.找/etc/ssh/sshd_config文件,在其中添加PermitRootLogin no.需要注意的是Linux系统是大小写敏感的,不要输错.输入完毕后,保存并退出,然后输入命令service sshd restart重启SSH服务使修改生效.这样当通过Root远程连接Linux服务器时,就会拒绝连接.(图1)
(2)PAM认证
我们还可以使用PAM认证模块来拒绝Root用户直接登录系统,可通过下面的操作来实现.打开/etc/pam.d/sshd文件,在第一行加入auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/sshduser onerr=succeed这条语句.其含义是,在登录时认证帐户和密码是否有效,只有认证通过才能登录系统,否则结束认证拒绝登录.它的认证模块是/lib/security/pam_listfile.so,认证的用户是用户(user),当然也可以是组(group),认证的方式是拒绝(deny),认证文件是/etc/sshduser,文件名及目录随意,如果认证成功就返回(succeed).(图2)
然后我们创建一个认证文件,可以在终端中运行命令echo "root" > /etc/sshduser来创建,当然我们也可以使用vi打开sshduser文件来加入用户.需要说明的是,当有多个用户时,每个用户占用一行.添加完成后,再使用Root直接登录服务器就可以看到登录被拒绝了.(图3)Empire CMS,phome.net
2、su限制
我们知道在Linux系统中有个su命令,利用该命令只要知道Root用户的密码,默认情况下任何人都可以切换到Root用户中进行操作.例如,一个属于users组的普通用户gslw可以通过su命令切换到Root用户中.(图4)
因此,我们需要对SU进行限制,只允许特定组的用户才能SU到Root用户.使用的方法还是通过PAM认证模块来实现.我们先前控制ssh服务,是使用/etc/pam.d/sshd文件,当然控制用户使用su命令就需要对
/etc/pam.d/su文件进行修改.直接打开该文件进行修改,或者在终端命令窗口输入命令vi /etc/pam.d/su,然后去掉其中#auth required pam_wheel.so use_uid的注释即可.(图5)
其含义是,使用pam_wheel.so文件来检查当前用户的UID,如果不是whell组的用户就直接拒绝.现在我们通过gslw用户登录系统,然后su到Root可以看到被拒绝.当然,要使其可以su到Root需要将其加入了wheel组才可以.(图6)
3、Root分权
大家知道,
Root具有最高的权限,经常用root用户来管理系统,会给系统带来一定的安全隐患.比如,一条无意识输入的破坏性的命令有可能会给系统带来毁灭性的打击.另外,如果系统被植入了嗅探工具,如果用root登录会造成root口令被窃取.因此我们要消减Root的权限,可以让其它用户来完成Root的一些工作,避免过多地使用Root用户.
如何为Root分权,要根据服务器的性质来确定.比如一个Linux平台的apache服务器,作为管理员经常使用的命令应该是诸如/usr/local/apache2/bin/apachect1 start/stop/restart这样的是启动/重启/停止服务器的命令.我们可以为此创建一个用户gslw来管理apache服务器,我们知道普通用户是没有权限来启动apache服务器的.这里要用到sudo命令,通过它为gslw用户加入扩展权限使其可以管理apache服务器.Empire CMS,phome.net
利用Vi或者直接进入/etc/pam.d打开sudo文件,然后在其中添加一行gslw ALL=(ALL) /usr/local/apache2/bin/apachectl命令就可以了.该命令分成四个字段,依次为用户名、作用对象、以谁的身份运行以及运行的命令.当然,我们也可以加入gslw localhost=(root) /usr/local/apache2/bin/apachectl start,这样过滤更严格一些.
保存退出后,使用gslw用户登录系统就可以运行/usr/local/apache2/bin/apachectl start命令了.上面只是举例,大家可以根据自己的需要在sudo文件中添加相应的命令行.不过,需要说明的是命令一定要严格过滤,不要赋权过大.(图7)
总结:Linux下的权限控制是非常严格的,但也非常灵活,我们可以根据自己的安全需求进行布防.当然,关于Root权限的控制策略和方法还有很多,希望本文提供的思路对大家有所帮助. Empire CMS,phome.net
linux如何开启root权限控制,Linux下的Root权限控制相关推荐
- linux 检查权限,检查目录下 文件的权限-linux shell脚本,
检查目录下 文件的权限-linux shell脚本, #!/bin/bash #History: #2019/07/23 Fsq #This Program will check Permiss ...
- 嵌入式linux内核开启键盘,- 基于嵌入式Linux内核的特殊矩阵键盘设计完整驱动控制模块方案...
首先设置输入设备的功能,input_set_capability(&sim_key,EV_KEY,KEY_A)函数完成键盘A键的输入使能,类似可完成B-X共24个按键的输入使能.然后设置键盘的 ...
- win系统oracle文件目录权限设置,win7下怎么设置完全控制权限
点击查看win7下怎么设置完全控制权限具体信息 答:安装后 在需要修改的文件夹右键获取权限 答:(注意我是用的是英文版所以有些翻译可能不完全和见到的一样,看意思一样的就是了.) 右击该文件点击属性,选 ...
- linux同时开启两个端口,linux下squid开多个端口的办法
visible_hostname fu_host1 #设定squid的主机名,如无此项squid将无法启动 http_port 80 accel vhost vport http_port 48888 ...
- linux桌面开启垂直同步刷新,关于Linux下AMD显卡关闭垂直同步的方法
为什么会想到修改垂直同步 在写OpenGL代码的时候发现帧率只有60fps左右,非常无语,我的RX470D怎么着也不可能才跑这么点,连特么核显都不如啊.想想一定是开了垂直同步.那就想辙关闭呗. 查找关 ...
- linux oracle开启监听服务器,linux服务器启动oracle监听端口
oracle监听 原理 客户端向服务器端发送连接请求,监听器监听到客户端德连接请求 监听器监听到客户端德连接请求后,把客户端德连接请求交给数据库服务器处理 客户端和服务器端建立连接,连接建立后,服务器 ...
- 【转】如何在忘记CentOS的root密码的情况下修改root密码。
注意,此方法只能在控制台上进行操作,不能远程操作. 进入单用户模式的前提是系统引导器能正常工作.下面以 GRUB 为例说明进入方法.在 GRUB 启动菜单里有"a"."e ...
- linux mint 18支持安卓编译,Linux mint 18版本开启SSH服务
linux mint 18版本默认是没有安装ssh server的 需要手动安装 安装ssh server: 此命令需要联网,会自动下载安装 安装之后看是否开始了ssh, 看到ssh-agent 和s ...
- linux内核开启ssh,linux开启ssh服务
本文概略:1)ubuntu发行版开启ssh.2)centos发行版开启ssh 1.ubuntu发行版安装/开启ssh服务 1.1 安装ssh服务端 sudo apt-get install opens ...
- linux脚本赋权命令765,Linux权限命令chmod
一.Linux chmod命令修改文件和文件目录权限(默认情况下只有root用户才能使用).命令格式:chmod+修改内容+要修改的文件或者 目录 或者 chmod -R 修改内容 要修改的文件或者 ...
最新文章
- hdu 3081(并查集+最大流)
- php里面的耗时操作,PHP执行时间那点事
- step1 . day4 C语言基础练习之日历
- python变成exe后启动弹出选文件窗口_通过.py脚本执行的.exe文件隐藏控制台窗口...
- Node.js学习之路24——Express框架的app对象
- 缓冲文件系统(fopen/fread/fwrite)和非缓冲文件系统(open/read/write)
- go基本数据类型与运算符
- maven添加子工程_Maven建立父子项目和跨项目调用内容的步骤—佳佳小白
- 怎样让公式编号不从1开始
- 行内元素多出的空白文本节点的解决方法
- 【超详细】| 使用Vmware 安装win7虚拟机
- 会计教学APP软件,实现教学的快速运转
- 呼叫中心系统的工单流转处理流程
- Python案例1—人民币与美元的汇率兑换V_6.0
- 和自然语言处理有关的英语_自然语言处理对非英语语言的重要性
- 微信浏览器禁止下载APK文件 微信扫描二维码 下载app的方法
- hadoop集群HA模式(JN+ZK)+yarn搭建
- SecureCRT和SecureFX的下载和安装2021
- 第一部文学理论和评论专著是谁的著作?全书分为几个部分?
- Qt QTabWidget详解
热门文章
- 生如夏花之绚烂,死如秋叶之静美。 [泰戈尔诗词收集]
- es7之Reflect Metadata
- 极速还原 V4.0 简体中文绿色免费版
- python读取txt文件中的内容并用逗号分割_数据分析—gt;文件读写
- cocos creator 全局变量的几种方法
- java山地车 故障,山地车经常会出现的十个小故障,你都遇到了几个
- xp提示计算机内存不足,在xp系统中,经常提示虚拟内存不足的原因是什么?
- 我在小公司,当了五年的前端切图仔
- 02-客房预订系统数据库-用户和客房预订数据操作
- 分叉币的发展史及价值|ETH、BCH、BSV 2020-03-08