运维开发网

第十二周

运维开发网 https://www.qedev.com 2020-07-04 14:47 出处:51CTO 作者:刺猬0o
sed变量引用,sudoers格式详解

1、 编写脚本/root/bin/checkip.sh,每5分钟检查一次,如果发现通过ssh登录失败 次数超过10次,自动将此远程IP放入Tcp Wrapper的黑名单中予以禁止防问

#!/bin/bash

 

IP=`lastb   |awk '/ssh/{print $3}'|sort|uniq -c|awk '{if($1>10)print $2}'`

for   i in ${IP};do

    sed -i '$a\sshd: '''$i''''   /etc/hosts.deny

done

备注:关于sed中引入变量有两种方式

方式一:

可以用双引号将将sed中的命令引起来如本题中:

sed -i "\$a\sshd: $IP" /etc/hosts.deny因为我是在文件的末尾插入一行,所以这里用到了”$a”,因此双引号中需要用”\”转义);但是,sed命令中也可能出现双引号,这样会与最外层的双引号产生冲突导致命令出现问题

方式二:

可以用三个单引号将变量引起来,如本题: sed -I ‘$a\sshd: '''$i'''';这样就不会出现前面的提到的问题,因此推荐使用这种方法

2、  配置magedu用户的sudo权限,允许magedu用户拥有root权限

useradd添加的用户没有sudo的权限,因此需要单独的配置,控制用户sudo权限的配置文件为/etc/sudoers,通过查看此文件可以发现有如下两项:

root   ALL=(ALL)        ALL

%wheel     ALL=(ALL) ALL

代码格式可以概况为:

授权用户/ 主机=[(切换到哪些用户或组)] [是否需要输入密码验证] 命令1,命令2,...

授权用户/: 不是%开头则表示授权用户,%开头则表示授权组

主机: 表示允许登陆的主机

[(切换到哪些用户或组)]: 可以省略,相当于(root:root),表示可以通过sudo提权到root;如果是(ALL)或(ALL:ALL)则表示能够提权到(任意用户:任意用户组),此处没有省略的情况下必须用()双括号扩起来

[是否需要输入密码验证]: 值为NOPASSWD,NOPASSWD后面带有冒号,表示执行sudo是可以不输入密码

命令1,命令2: 具体的命令,绝对路径,两个命令之间用逗号隔开,ALL代表所有命令

 

 

因此开通magedu用户sudo权限方法如下:

方法一:

usermod -a -G wheel magedu

直接加入到wheel组中,如果提示没有wheel组,则创建

groupadd wheel

方法二:

直接修改/etc/sudoers文件,但是此方法不推荐,通过visudo修改sudoers文件可以检查语法是否正确

visudo -f /etc/sudoers

第十二周

方法三:

在/etc/sudoers.d/文件夹中创建账户对应的文件进行权限控制

touch magedu

第十二周

     推荐使用此方法,不同账户独立文件独立的权限控制,方便查看,而且不会因为修改语法方面的问题,影响全局的账户控制

关于sudoers格式说明参考了如下文章:

http://www.mamicode.com/info-detail-2376629.html

0

精彩评论

暂无评论...
验证码 换一张
取 消