Linux服务器权限管理之sudo高级应用
发布日期:2021-07-01 03:56:38 浏览次数:2 分类:技术文章

本文共 3697 字,大约阅读时间需要 12 分钟。

      Linux系统修改权限与默认权限,它都是征对用户对于目录或文件的一些权限控制,那么其实真正从安全性角度上来考虑的话,是要控制用户一定执行命令的权限,也就是哪些用户可以执行哪些命令,不可以执行哪些命令,因此也就有了sudo这个应用

对于sudo提权,也就是修改/etc/sudoers的配置文件

[root@Centos~]# ls -ll /etc/sudoers

-r--r-----.1 root root 5870 Aug 19 16:53 /etc/sudoers

可以看出/etc/sudoers默认的权限是440(也是系统比较安全的权限设置),当然了超级管理员肯定是有权限修改其文件内容的,不然还不哦哦了...........。

修改sudoers文件注意事项

1、操作时最好用echo >>追加,不过cat sed同样也可以实现(不常用)

2、修改完成后一定记得检查语法visudo -c

3、确保/etc/sudoers默认的权限是440(防止权限误用)

4、及时验证修改的配置是否正确

5、确保知道root密码,以便普通用户可以通过sudo su -命令切换

查看 sudoers文件

 [root@Centos~]# cat /etc/sudoers

# Sudoers allows particular users torun various commands as

## Examples are provided at the bottomof the file for collections

## of related commands, which can thenbe delegated out to particular

## users or groups.

## This file must be edited with the'visudo' command.

## Host Aliases

## Groups of machines. You may preferto use hostnames (perhaps using 

## wildcards for entire domains) or IPaddresses instead.

# Host_Alias     MAILSERVERS= smtp, smtp2

## User Aliases

## These aren't often necessary, as youcan use regular groups

## (ie, from files, LDAP, NIS, etc) inthis file - just use %groupname 

## rather than USERALIAS

# User_Alias ADMINS = jsmith, mikem

修改时尽量复制系统的格式进行相关修改,防止配置错误,难以改正

修改授权某用户权限成功后,切换到用户下面,用sudo -l 来查看自己拥有哪些权限

[yuw001@Centos ~]$ sudo -l

[sudo] password for yuw001: 

User yuw001 may run the followingcommands on this host:

    (root) /bin/ping,/bin/hostname, /usr/bin/free, /sbin/route,

   /bin/netstat

使用命令时记得加上sudo 

[yuw001@Centos ~]$ hostname  linux

hostname: you must be root to changethe host name

[yuw001@Centos ~]$ /bin/hostname linux

hostname: you must be root to changethe host name

[yuw001@Centos ~]$ sudo hostnamelinux 

[root@linux ~]#          退出重新登陆后发现主机名修改成功

配置文件一行是一个规则,前面都会用#进行注释,用‘\’续行(换行)

sudoers配置文件别名类型

别名类型分为以下几类

a、Host_Alias(主机别名)

生产环境中一般不会设置主机别名,一般主机别名不太常用

root   ALL=(ALL)      ALL         第一个ALL就是主机别名的应用位置 

 b、User_Alias(用户别名)

如果是表示用户组那么前面要加%

root   ALL=(ALL)       ALL        root就是用户别名的应用位置

User_AliasADMINS = jsmith, mikem

c、Runas_Alias别名

此别名是指定“用户身份”,即 sudo允许切换到的用户

root   ALL=(ALL)      ALL        第二个(ALL)就是用户别名的应用位置

Runas_Alias OP = root  

d、Cmnd_Alias(命令别名)

就是定义一个别名,它可以包含一堆命令的内容(一组相关命令的集合)

root   ALL=(ALL)      ALL        第三个ALL就是用户别名的应用位置

Cmnd_AliasDRIVERS = /sbin/modprobe

说明

I.       用户别名中的用户必须是系统真实存在的,书写时注意空格,用户别名具有特殊意义,用户别名必须使用大写

II.       命令别下的成员必须使用绝对路径,可以用‘\’换行

sudoers配置文件授权规则

授权规则就是执行的规则,授权中的所有ALL必须大写

## Allow root to run any commandsanywhere 

root       ALL=(ALL)      ALL

yumw    ALL=(ALL)      /usr/sbin/useradd,/usr/sbin/userdel 

###user group sa allow to run commandsanywhere

yuw  ALL=/usr/sbin*,/sbin*

sa    ALL=/usr/sbin*,/sbin*,!/sbin/fdisk  

!表示禁止执行这个命令

 [sa@linux ~]$ sudo -l

User sa may run the following commandson this host:

    (root) /usr/bin*, (root)/sbin*, (root) !/sbin/fdisk

[sa@linux ~]$ sudo fdisk

Sorry, user sa is not allowed toexecute '/sbin/fdisk' as root on linux.

如果将配置做下修改

###user group sa allow to run commandsanywhere

yuw  ALL=/usr/sbin*,/sbin*

sa    ALL= !/sbin/fdisk,/usr/sbin*,/sbin*

 [sa@linux ~]$ sudo -l

User sa may run the following commandson this host:

    (root) /usr/bin*, (root)/sbin*, (root) !/sbin/fdisk

然后进行测试

[root@linux ~]# su - sa

[sa@linux ~]$ sudo fdisk

[sudo] password for sa: 

Usage:

 fdisk [options] <disk>   change partition table

 fdisk [options] -l <disk>list partition table(s)

 fdisk -s <partition>     give partition size(s) in blocks

Options:

 -b <size>              sector size (512, 1024, 2048 or 4096)

 -c                          switch offDOS-compatible mode

 -h                          print help

 -u <size>              give sizes in sectors instead of cylinders

 -v                          print version

 -C <number>        specify the number of cylinders

 -H <number>        specify the number of heads

 -S <number>         specify the number of sectors per track

所以经测试结果表明,sa   ALL= !/sbin/fdisk ,/usr/sbin*,/sbin*命令执行的匹配规则是从后到前的,所以后面执行sudofdisk不会提示权限不足的现像

更多内容请关注民工哥的个人公众号——友侃有笑

扫描下方二维码图片关注公众号——友侃有笑

转载地址:https://mingongge.blog.csdn.net/article/details/52701368 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Linux系统实战项目——sudo日志审计
下一篇:Linux系统定时任务(crond)

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月13日 02时08分25秒