sudo 是 Linux 系统管理指令,是允许系统管理员让普通用户执行一些或者全部的 root 命令的一个工具,如 halt,reboot,su 等等。这样不仅减少了 root 用户的登录 和管理时间,同样也提高了安全性。sudo不是对 shell 的一个代替,它是面向每个命令的。sudo 的特点
限制用户执行指定的命令记录用户执行的每一条命令配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数验证密码的后5分钟内(默认值)无须再让用户再次验证密码实战演练环境:Red Hat Enterprise Linux Server release 7.31. 测试普通用户能否删除 root 用户创建的文件
[root@localhost~]#mkdir/test[root@localhost~]#cd/test[root@localhosttest]#touchtest.txt[root@localhosttest]#mkdirtest.dir[root@localhosttest]#lltotal0drwxr-xr-x.2rootroot6Jul1802:19test.dir-rw-r--r--.1rootroot0Jul1802:19test.txt[root@localhosttest]#idtestuid=1004(test)gid=1005(test)groups=1005(test)[root@localhosttest]#su-testLastlogin:ThuJul1802:17:11EDTonpts/0[test@localhost~]$cd/test[test@localhosttest]$lltotal0drwxr-xr-x.2rootroot6Jul1802:19test.dir-rw-r--r--.1rootroot0Jul1802:19test.txt[test@localhosttest]$rm-rftest.dir/rm:cannotremove‘test.dir/’:Permissiondenied[test@localhosttest]$rm-rftest.txtrm:cannotremove‘test.txt’:Permissiondenied[test@localhosttest]$lltotal0drwxr-xr-x.2rootroot6Jul1802:19test.dir-rw-r--r--.1rootroot0Jul1802:19test.txt
2. 用 visudo 命令配置 sudo
[root@localhost~]#visudo#在/etc/sudoers配置文件中rootALL=(ALL)ALL这一行下面加入testALL=(ALL)ALL[root@localhost~]#cat/etc/sudoers|grepALLDefaultsenv_keep+="LC_TIMELC_ALLLANGUAGELINGUAS_XKB_CHARSETXAUTHORITY"rootALL=(ALL)ALLtestALL=(ALL)ALL#%sysALL=NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCESSES,LOCATE,DRIVERS%wheelALL=(ALL)ALL#%wheelALL=(ALL)NOPASSWD:ALL%wheelALL=(ALL)NOPASSWD:ALL#%usersALL=/sbin/mount/mnt/cdrom,/sbin/umount/mnt/cdrom
3. 普通用户结合 sudo 删除 root 用户的文件
[root@localhost~]#echo"Jaking"|passwd--stdintestChangingpasswordforusertest.passwd:allauthenticationtokensupdatedsuccessfully.[root@localhost~]#su-testLastlogin:ThuJul1802:34:50EDTonpts/0[test@localhost~]$cd/test/[test@localhosttest]$lltotal0drwxr-xr-x.2rootroot6Jul1802:19test.dir-rw-r--r--.1rootroot0Jul1802:19test.txt[test@localhosttest]$rm-rftest.dir/rm:cannotremove‘test.dir/’:Permissiondenied[test@localhosttest]$rm-rftest.txtrm:cannotremove‘test.txt’:Permissiondenied[test@localhosttest]$sudorm-rftest.dir/[sudo]passwordfortest:[test@localhosttest]$lltotal0-rw-r--r--.1rootroot0Jul1802:19test.txt[test@localhosttest]$sudorm-rftest.txt[test@localhosttest]$lltotal0
4. sudo 免密配置
[test@localhosttest]$sudocat/etc/shadow[sudo]passwordfortest:root:$6$YZrm6scxO5zzICbR$fOzORb.0Ib9POZzJmrnzOGDqfFySp8X.9p5QpcpnJXWHIJvZcFpXQONyNigwrZbhXtyfnFn5F1mJsdkXS3jEF/::0:99999:7:::bin:*:16925:0:99999:7:::daemon:*:16925:0:99999:7:::adm:*:16925:0:99999:7:::***省略部分输出信息***[test@localhosttest]$idtest2uid=1006(test2)gid=1007(test2)groups=1007(test2)[root@localhost~]#visudo#在/etc/sudoers配置文件中%wheelALL=(ALL)NOPASSWD:ALL这一行的下面加入testALL=(ALL)NOPASSWD:ALL[root@localhost~]#cat/etc/sudoers|grepNOPASSWD#%wheelALL=(ALL)NOPASSWD:ALL%wheelALL=(ALL)NOPASSWD:ALLtestALL=(ALL)NOPASSWD:ALL[test@localhost~]$sudocat/etc/shadow#用普通用户查看/etc/shadow文件已经不需要再输入当前登录用户的密码root:$6$YZrm6scxO5zzICbR$fOzORb.0Ib9POZzJmrnzOGDqfFySp8X.9p5QpcpnJXWHIJvZcFpXQONyNigwrZbhXtyfnFn5F1mJsdkXS3jEF/::0:99999:7:::bin:*:16925:0:99999:7:::daemon:*:16925:0:99999:7:::adm:*:16925:0:99999:7:::***省略部分输出信息***
5. 配置 sudo 的部分权限
[root@localhost~]#cd/tmp[root@localhosttmp]#rm-rf*[root@localhosttmp]#lltotal0[root@localhosttmp]#touchfile[root@localhosttmp]#mkdirdir[root@localhosttmp]#lltotal0drwxr-xr-x.2rootroot6Jul1803:01dir-rw-r--r--.1rootroot0Jul1803:01file[root@localhosttmp]#whereiscatcat:/usr/bin/cat/usr/share/man/man1/cat.1.gz[root@localhosttmp]#visudo#把/etc/sudoers配置文件中的testALL=(ALL)ALL改为testALL=(ALL)/usr/bin/cat[root@localhost~]#cat/etc/sudoers|grepcat##Updatingthelocatedatabase#Defaultsspecification#PreservingHOMEhassecurityimplicationssincemanyprogramstestALL=(ALL)/usr/bin/cat[root@localhost~]#su-testLastlogin:ThuJul1803:06:55EDTonpts/0[test@localhost~]$sudocat/etc/shadow#给test用户配置了查看权限root:$6$YZrm6scxO5zzICbR$fOzORb.0Ib9POZzJmrnzOGDqfFySp8X.9p5QpcpnJXWHIJvZcFpXQONyNigwrZbhXtyfnFn5F1mJsdkXS3jEF/::0:99999:7:::bin:*:16925:0:99999:7:::daemon:*:16925:0:99999:7:::adm:*:16925:0:99999:7:::***省略部分输出信息***[test@localhost~]$cd/tmp[test@localhosttmp]$lltotal0drwxr-xr-x.2rootroot6Jul1803:06dir-rw-r--r--.1rootroot0Jul1803:01file[test@localhosttmp]$rm-rfdir#test用户已经没有了删除权限rm:cannotremove‘dir’:Permissiondenied[test@localhosttmp]$rm-rffile#test用户已经没有了删除权限rm:cannotremove‘file’:Permissiondenied[test@localhosttmp]$lltotal0drwxr-xr-x.2rootroot6Jul1803:06dir-rw-r--r--.1rootroot0Jul1803:01file
让您学习到的每一节课都有所收获
《Linux就该这么学》是一本由资深运维专家刘遄老师及国内多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。荣获双11、双12购物狂欢节IT品类书籍销量冠军,、国内读者增速最快的技术书籍,您可以在京东、当当、亚马逊及天猫搜索书名后购买,亦可加刘遄老师微信交流学习(手指按住下图3秒钟即可自动扫描)~
刘遄老师QQ:5604922
☀Linux技术交流群:2265381(新群,火热加群中……)
☀官方站点:
☀ 书籍在线学习(电脑在线阅读效果更佳):
/chapter-00.html
《Linux就该这么学》是一本基于最新Linux系统编写,面向零基础读者的技术书籍。从Linux基础知识讲起,然后渐进式地提高内容难度,详细讲解Linux系统中各种服务的工作原理和配置方式,以匹配真实生产环境对运维人员的要求,突显内容的实用性。想要学习Linux系统的读者可以点击按钮了解这本书,同时这本书也适合专业的运维人员阅读,作为一本非常有参考价值的工具书!
如果觉得《sudoers 用户权限配置_使用sudo让普通用户获取root用户的权限》对你有帮助,请点赞、收藏,并留下你的观点哦!