首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

系统命令sudo权限

sudo权限的作用:

※ root把本来只能超级用户执行的命令赋予普通用户执行

※ sudo的操作对象是系统命令

------------------------------------------------

我们知道,在Linux目录中,/sbin与/usr/sbin下的命令只有管理员root才有权限使用。比如说一家公司的一个团队来维护一组服务器,团队的负责人负责root权限,剩下团队的其他人只能拿普通用户权限。但是负责人工作内容很多,没有时间去维护服务器的日常工作,这个时候就需要普通用户去维护。但是我们知道,普通用户的限制非常的多,许多的命令都没法使用,那这个时候就需要root把一部分只能超级用户执行的命令赋予普通用户执行。

------------------------------------------------

sudo命令如何赋予普通用户权限呢?

sudo使用前,需要注意,必须是管理员root先赋予权限,然后普通用户才能执行sudo命令。如果超级用户不给普通用户sudo权限,普通用户什么都操作不了。所以,首先第一步是由管理员使用命令"visudo"来赋予普通用户权限(实际修改的是/etc/sudoers文件)

在文件/etc/sudoers的92行,如下图,有4部分需要说明。

第1部分:用户名,你给哪一位用户赋予权限;如果有一个百分号"%",表示的是给某一组用户赋予权限。

第2部分:指的ip地址或者网段。这里的ip或者网段并不是定义允许哪一个ip地址或者网络通过指定的用户访问本机,而是指用户执行的命令在哪个ip地址或者网段,很绕不好理解。如果只有一台计算机,那这里填写ALL或者本机的ip地址。在一些特定的服务中,此处需要填写网段。

第3部分:代表可以转变成哪些的身份,一般情况下写ALL或者不写都可以。

第4部分:代表授权的命令,绝对路径表示。

举个例子,给st1用户赋予重启命令,可这样写:"st1 ALL=/sbin/shutdown -r now"

如果后面赋予的权限"/sbin/shutdown" ,表示对应的普通用户可以使用这条命令的任何参数;如果是"/sbin/shutdown -r now",代表对应的普通用户只能使用指定选项的命令。具体看个人需求。普通用户st1登录后要使用root给的sudo权限,必须在命令前加sudo,如:“sudo /sbin/shutdown -r now”。可使用"sudo -l"查看可用的sudo命令。

另外一点需要注意,普通用户有vim命令的权限,权限的范围已经是预先控制好的。如果在/etc/sudoers中强行给普通用户赋予vim命令的权限,这是一个极其危险的操作。为什么?因为root能管理的文件,赋予sudo权限的普通用户也能管理,比如/etc/passwd、/etc/shadow等文件。所以,一定要注意。

举一个例子:

touch /tmp/test //root用户新建一个文件

cd /tmp

vim test //写入一些数据,比如123

chmod 600 test //文件改变权限

ls -l

visudo //给普通用户st1赋予sudo权限,对应的命令为/usr/bin/vim

su -st1 //切换普通用户st1

sudo -l

sudo /usr/bin/vim /tmp/test //普通用户st1能自由的修改这个文件,所以赋予权限前需要谨慎。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190819A05H8F00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券