sudo的简单用法
su: Switch User, 以管理员身份运行某些命令:
su -l root -c 'COMMAND'
但是想要限制某个用户只拥有一部分管理员权限,而不是拥有全部权限,这就需要用到sudo
sudo: 是可以让某个用户不需要拥有管理员的密码,可以执行管理员的权限
作为管理员可以指派某些用户可以执行某些特定命令,类似suid
配置文件:/etc/sudoers
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
%wheel: 运行命令者的身份,user
第一个ALL:在哪些主机上, host
第二个ALL:以哪个用户的身份, runas
第三个ALL:运行哪些命令, command
配置项:
users hosts=(runas) commands
users:
username
#uid
user_alias
%group_name
%#gid hosts:
ip
hostname
netaddr commands:
command name
directory
sudoedit Alias_Type NAME = item1, item2, ...
NAME: 必须使用全大写字母
Alias_Type:
User_Alias
Host_Alias
Runas_Alias
Cmnd_Alias Alias_type NETADMIN = netuser1, netuser2
Cmnd_Alias NETADMINAMNDS = /usr/sbin/ip
实例:vim /etc/sudoers
User_Alias NETADMIN = netuser1, netuser2
Cmnd_Alias NETADMINCMNDS = /usr/sbin/ip
NETADMIN ALL=(root) NETADMINCMNDS
命令: sudo [-u user] COMMAND
-V: 显示版本编号
-h: 会显示版本编号及指令的使用方式说明
-l: 显示出自己(执行sudo的使用者)的权限
-v: 因为sudo在第一次执行时或是在N分钟内没有执行(N预设为五)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码
-k: 将会强迫使用者在下一次执行sudu时问密码(不论有没有超过N分钟)
-b: 将要执行的指令放在后台执行
-p prompt 可以更改问密码的提示语,其中%u会代换为使用者的账号名称,%h会显示主机名称
-u username/#uid 不加此参数,代表要以root的身份执行指令,而加了此参数,可以以username的身份执行指令(#uid为该username的使用者号码)
实例
User_Alias USERADMIN = poweruser1, poweruser2
Cmnd_Alias USERADMINCMNDS = /usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd [a-z]* !/usr/bin/passwd root //不允许修改root管理员密码
USERADMIN ALL=(root) NOPASSWD: USERADMINCMNDS
sudo的简单用法的更多相关文章
- CATransition(os开发之画面切换) 的简单用法
CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
- Oracle的substr函数简单用法
substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 subst ...
- Ext.Net学习笔记19:Ext.Net FormPanel 简单用法
Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...
- TransactionScope简单用法
记录TransactionScope简单用法,示例如下: void Test() { using (TransactionScope scope = new TransactionScope()) { ...
- WPF之Treeview控件简单用法
TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...
- listActivity和ExpandableListActivity的简单用法
http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html 今天自己简单的总结了listActivity和Expandable ...
随机推荐
- layui父子页面方法互调
父级页面调用子页面方法 layer.open({ type: 2, content: 'test/iframe.html', success: function(layero, index){ var ...
- cookie 笔记
Cookie “小甜点” Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生 用来记录:用户信息 计算机信息 浏 ...
- 使用Redis需要注意的几点
Redis作为缓存中间件,被广泛应用在各类系统,用来提升系统性能和吞吐,下面总结几点开发人员在使用Redis时需要考虑的几个关键点: 一. key的设计 1. key命名规范:为了避免不必要的麻烦,我 ...
- TestStand 基础知识[7]--Build-in Step Types (2)
接着上一篇文章:TestStand 基础知识[6] Build-In StepTypes(1) 继续介绍: 还是先把Build-in StepTypes图片贴一下, 1. Call Executabl ...
- Java 中序列化与反序列化
一. 序列化和反序列化概念 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程.将程序中的对象,放入文 ...
- [教程分享]锐族MP3刷固件教程
转载自我的博客:https://blog.ljyngup.com/archives/163.html/ (废话较多见谅) 在到学校前发现几个月前锐族mp3的固件更新了,赶紧刷了一个,发现网上关于这个售 ...
- jq根据table的tr行数动态删除相应的行
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Rip 动态路由协议
路由信息协议(RIP) 是内部网关协议IGP中最先得到广泛使用的协议. Routing Information Protocol) RIP是一种分布式的基于距离矢量的路由 ...
- 赛狗日源码分享 《Head First C#》第三版
目录 前言 效果展示 步骤 熟读任务说明 搭界面 开始代码 From.cs Greyhound.cs Guy.cs Bet.cs 写在后面的话 本次遇见的一些问题 关于优化 可以设定狗的特性 去掉Be ...
- 【转载】IPSec-Tools配置
来源:https://blog.csdn.net/zt698/article/details/4811604 1 介绍从Linux 2.6内核开始,内核就自身带有IPSec模块,配合IPS ...