如何把一个命令加入到某个用户sudo的列表中

news/2024/7/21 15:01:19 标签: user, vim

           有时候我们只需要执行一条root权限的命令也要suroot,是不是有些不方便?这时可以用sudo代替。默认新建的用户不在sudo组,需要编辑/etc/sudoers文件将用户加入,该文件建议使用visudo命令进行编辑(其使用方法跟vim基本一致)

1, 首先进行visudo的当前用户必须是root用户,因此需要切换到root, su - (注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用乎的环境变量,用"su -"命令将环境变量也一起带过去,就象和root登录一样)

2,visudo移动光标,到一行root ALL=(ALL)   ALL的下一行,按i,插入模式,输入
your_user_name ALL=(ALL)   ALL

然后按Esc

输入

再输入:wq!

保存退出

这样就把自己加入了sudo组,可以使用sudo命令了。

3,默认5分钟后刚才输入的sodo密码过期,下次sudo需要重新输入密码,如果觉得在sudo的时候输入密码麻烦,把刚才的输入换成如下内容即可:
your_user_name ALL=(ALL) NOPASSWD: ALL

 

        前面介绍的是如何把一个用户添加到sudo列表中,那么如何把一个命令添加到sudo列表呢,我们以/usr/bin/make这个命令为例子进行说明。首先需要了解该命令是需要添加到哪个用户组,比如用户user_00,对应的用户组是users,所有属于该users用户组的用户都可以通过sudo命令使用/usr/bin/make,则:

 1,执行visudo,找到如下的用户组:

      %users          ALL=NOPASSWD:/usr/sbin/tcpdump, \
                        /usr/local/apache/bin/*, \
                        /usr/local/apache/admin/*, \
                        /usr/local/php/admin/*,/usr/local/nginx/admin/*,/usr/local/pws/admin/*, \
                        /usr/local/qza_restaurant/admin/*,/usr/local/agw_workshop/admin/*,/usr/local/squid*/admin/* , \
                        /usr/local/stat/admin/*,/usr/local/services/cmagent-1.0/admin/*

 2,在最后添加:/usr/bin/make,如下:

       %users          ALL=NOPASSWD:/usr/sbin/tcpdump, \
                        /usr/local/apache/bin/*, \
                        /usr/local/apache/admin/*, \
                        /usr/local/php/admin/*,/usr/local/nginx/admin/*,/usr/local/pws/admin/*, \
                        /usr/local/qza_restaurant/admin/*,/usr/local/agw_workshop/admin/*,/usr/local/squid*/admin/* , \
                        /usr/local/stat/admin/*,/usr/local/services/cmagent-1.0/admin/*,/usr/bin/make

3,保存退出

 

4,验证:sudo /usr/bin/make, ok,如果想看当前用户可以sudo操作的命令列表,可以执行如下命令:sudo -l 进行查看。

       

 


http://www.niftyadmin.cn/n/1737788.html

相关文章

Alamofire-Request

一、简述 在Alamofire中为了方便管理,明确分工,Alamofire对整个请求过程做了明确划分,并统一交由SessionManager来管理。SessionManager负责SessionDelegate、URLSession、URLRequest等对象创建与管理。先看一段请求示例: let u…

各浏览中对 MAP 和 AREA 元素的事件处理行为不同

from : http://w3help.org/zh-cn/causes/HO2009 标准参考 MAP 和 AREA 元素通常组合起来使用为图片要设置一个超链接区域。使用时将 IMG 元素的 "usemap" 属性1关联到一个 MAP 元素上,这个 MAP 元素的 "name" 属性值要与 IMG 元素的 "use…

Alamofire-Request补充

一、回顾 在前面源码探索中,SessionManager管理Request和SessionDelegate的创建,并通过task绑定Request和SessionDelegate对象;Request负责请求的参数的配置,以及task不同任务的创建,创建连接外部(发送请求…

防止编译器过度优化导致的并发异常问题

编译器为了优化程序的执行性能,可能对代码的执行顺序进行了调整或者是使用了寄存器代替内存访问,这种情况下,我们可以使用volatile关键字试图阻止过度优化, volatile主要做了两件事情: 1,阻止编译器为了提…

Alamofire-Response

response为数据请求响应结果,封装了URLRequest、时间轴、请求错误信息,请求成功的数据等信息,方便开发人员取用。 一、业务层获取响应数据 Alamofire.request(url,method: .post,parameters: nil).response{ response inprint("respon…

详解volatile关键词的用法1

from:http://baike.baidu.com/view/608706.htm 一,volatile是什么? volatile是一个类型修饰符(type specifier),它跟const等一样,它是被设计用来修饰被不同线程访问和修改的变量。如果没有volat…

详解volatile关键词的用法2

volatile 影响编译器的结果输出,volatile 修饰的变量标明随时可能发生变化的(是指可能被本线程外的其他机制修改:如其他线程,中断,硬件),与volatile变量有关的运算,不要进行编译优化…

Alamofire-使用

所有类型请求,Alamofire都直接提供,通过Alamofire直接调用,配置相关参数即可。示例如下: 1、GET请求 let urlStr "http://onapp.yahibo.top/public/?sapi/test/list" Alamofire.request(url).responseJSON { (respo…