Linux笔记(42)——sudo权限 - Go语言中文社区

Linux笔记(42)——sudo权限


sudo权限

在工作中使用linux,root用户不一定有时间去管理系统,而普通用户的权限又比较低,有许多命令是无法执行的,因此我们可以把一些本来只有root用户才能执行的命令赋予普通用户。

sudo使用

visudo命令

执行该命令,其实是打开/etc/sudoers文件

这里写图片描述

如上图红框所示:
1. root 表示root用户
2. 第一个ALL的位置表示被管理的主机,可以用ip表示,ALL表示所有
3. 第二个ALL的位置表示可使用的身份(可以省略)
4. 最后一个ALL的位置表示授权的命令的绝对路径

假设我们要给user1用户授予执行shutdown命令的权限(普通用户没有这个权限),我们可以在这个文件中加上这句:

user1 ALL=(ALL) /sbin/shutdown -r now

那么user1 就可以执行shutdown -r now这条命令

注意:在这里,如果我们写user1 ALL=(ALL) /sbin/shutdown,那么user1可以执行shutdown所有命令,任何选项都可以用,比如shutdown -r,shutdown -h等。如果我们写shutdown -r now,那就只能执行shutdown -r now这一条命令,shutdown的其他选项不可用

同样的,我们可以给用户组赋予sudo权限命令,方法和给用户赋予sudo权限是一样的,只是要在前面加上%。如下:
%groupname ALL=(ALL) ALL

例子1:让普通用户拥有添加用户的权限

普通用户是没有添加用户的权限的
这里写图片描述

visudo
这里写图片描述
user1执行添加user2,并且可以更改密码
这里写图片描述


注意:我刚刚赋予user1修改密码的权限,那么user1是可以修改root用户的密码的,因此非常危险
解决方法如下:

这里写图片描述

例子2:赋予vi给普通用户

如果我们把/bin/vi的权限赋予普通用户,那么这个用户就可以利用visudo赋予自己更多的权限,那么就等于把服务器送给这个普通用户了。一定要注意

sudo -l

查看能够执行的sudo命令

如:
这里写图片描述
切换到user1,查看:
这里写图片描述

执行sudo命令

user1想要执行上面赋予的命令,要在命令前加sudo,并且命令要写绝对路径,如:

sudo /sbin/shutdown -r now

然后会要求你输入密码。

有人发现centos6以上版本可以不输入命令的绝对路径也能执行,那是因为centos6对此对了优化。但是还是有很多linux系统必须输入绝对路径才能执行sudo命令,因此为了兼顾不同的系统,还是养成输入绝对路径的习惯

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u010837612/article/details/50896434
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-13 14:59:39
  • 阅读 ( 911 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢