sudo
背景:linux的安全很大程度上依赖于权限的分配,而目前线上机器sudo权限的分配统一以ALL的形式分配,很容易因为误操作而造成一些不可恢复的错误,因此现在需要重新细化sudo权限,以保障linux环境的安全。
原理:linux /etc/sudoers中已为我们提供了权限细化的example,我们通过定义主机群,定义用户组,定义指令组的方式来统一细化分配。sudo权限还牵扯到用户组,可以采用用户组统一权限,简化/etc/sudoers。
实现步骤
(1)为指定用户或批量用户添加用户组。若该用户不存在则新增,若存在则直接分配用户组,如wusheng分配到ops组。
(2)进入/etc/sudoers,指定User_Alias。如User_Alias ADMINS = wusheng,admin,若许多用户权限上一致,可以采取该种方式进行权限定义。
(3)指定Cmnd_Alias。如
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool, /usr/bin/netstat
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum, /usr/bin/pip3
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig, /usr/bin/systemctl start, /usr/bin/systemctl stop, /usr/bin/systemctl reload, /usr/bin/systemctl restart, /usr/bin/systemctl status, /usr/bin/systemctl enable, /usr/bin/systemctl disable
Cmnd_Alias LOCATE = /usr/bin/updatedb
Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
#system services
Cmnd_Alias SYSTEM = !/usr/sbin/reboot, !/usr/sbin/shutdown, !/usr/sbin/halt
若权限较多,可使用反选方式。如以上Cmnd_Alias SYSTEM,除reboot,shutdown,halt以外的指令都可以执行。以上指令必须都为绝对路径。
(4)结合以上User_Alias,Cmnd_Alias指定用户或用户组权限。
(5)若同组用户大多权限保持一致,少数权限不一样,可通过设定用户组公共权限,再通过个人用户指定不一样的权限。
如上图,表示ops组中所有用户都有NETWORKING指令集的权限,但其中zhiyun和xujiguang分别在此基础上拥有如图显示的权限。
问题总结
(1)对于/etc/sudoers文件操作要及其小心,一单其中发现语法等错误退出了会导致用户无法进入修改,只可以通过root进行修改。
解决方法:对于/etc/sudoers文件的编辑,linux有专门的指令visudo,在修改文件后退出该指令会自动判断/etc/sudoers是否存在语法错误,若存在可以重新进行编辑,保障安全性和不必要的麻烦。
(2)linux /etc/sudoers文件已经为我们准备一些优化方式,认真查看该文件就会发现许多奥秘。
文章最后发布于: 2018-08-21 19:04:59
相关阅读
1、打开”系统设置“,点击硬件下的”键盘“选项 2、然后点击”快捷键“标签,就可看到快捷键的设置界面了,如下所示。 从上往下依次
文字图片是转载:http://kernel.meizu.com/linux-thermal-framework-intro.html 代码分析是自己的分析 Linux Thermal 是Linux 系统
本文所需的jdk1.8版本rpm包:链接: https://pan.baidu.com/s/146rZKd0hP0851MBT68PnEw 提取码: uqif 很多应用的运行需要有Java环
1、write() 函数定义:ssize_t write (int fd, const void * buf, size_t count); 函数说明:write()会把参数buf所指的内存写入cou
Linux内核编译、安装流程 本博客属于原创,转载请注明来源 此处只讲linux内核编译步骤至于安装虚拟机,安装ubuntu操作系统请自行百