Linux服务器权限管理之sudo高级应用
来源:互联网 发布:360软件开放 编辑:程序博客网 时间:2024/05/22 01:51
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不会提示权限不足的现像
更多内容请关注民工哥的个人公众号——友侃有笑
扫描下方二维码图片关注公众号——友侃有笑
- Linux服务器权限管理之sudo高级应用
- Linux服务器权限管理之sudo高级应用
- Linux权限管理之sudo权限(下)
- Linux 系统命令权限管理 之 sudo
- linux 权限管理sudo 权限
- Linux入门:权限管理sudo
- Linux常用命令(31)之特殊权限管理sudo
- Linux-权限管理(sudo权限)
- Linux-权限管理-su与sudo详解
- Linux sudo权限管理的脚本
- Linux权限管理——sudo和chattr权限
- Linux下权限管理-文件系统属性权限chattr/sudo
- Rhyme/Linux 权限管理 系统命令 sudo权限
- Linux学习之——sudo权限
- linux权限管理之su与 sudo详解___username is not in the sudoers file
- linux权限管理之su与 sudo详解___username is not in the sudoers file
- Sudo权限管理
- Linux权限管理ACL权限,文件特殊权限,chattr权限,sudo权限
- 手动释放linux内存cache和脚本定时释放
- spring的resources---针对于资源文件的统一接口
- [Leetcode] Remove Duplicates from Sorted Array
- sentinel搭建redis集群的注意事项
- 动态缓存技术之CSI,SSI,ESI
- Linux服务器权限管理之sudo高级应用
- 强制字符转化
- Mysql使用索引可能失效的场景
- 曲线比较Frechet距离算法
- 嵌入式数据库sqlite 的简单使用
- android 面试题
- 第一次写博客
- 单链表反转
- 有关获取并保存微信头像到本地服务器