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的简单用法的更多相关文章

  1. CATransition(os开发之画面切换) 的简单用法

    CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...

  2. jquery.validate.js 表单验证简单用法

    引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...

  3. NSCharacterSet 简单用法

    NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...

  4. [转]Valgrind简单用法

    [转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...

  5. Oracle的substr函数简单用法

    substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H'  *从字符串第一个字符开始截取长度为1的字符串 subst ...

  6. Ext.Net学习笔记19:Ext.Net FormPanel 简单用法

    Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...

  7. TransactionScope简单用法

    记录TransactionScope简单用法,示例如下: void Test() { using (TransactionScope scope = new TransactionScope()) { ...

  8. WPF之Treeview控件简单用法

    TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...

  9. listActivity和ExpandableListActivity的简单用法

    http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html 今天自己简单的总结了listActivity和Expandable ...

随机推荐

  1. JAVA ReentrantLock的使用

    源码如下 对比synchronized,synchronized使用时会显示的指定一个对象(方法为调用对象,代码块会需要对象作为参数),来获取一个对象的独占锁 而ReentrantLock可能就是使用 ...

  2. [转]java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?

    在 Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity. 所有对象的非同步 方法都能够在任意时刻被任意线 ...

  3. 01-Maven

    今日知识 1. Maven 2. 依赖管理 2. 项目构建 Maven 1. Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 2. Ma ...

  4. debian 和ubuntu 安装ifconfig 命令

    # apt update # apt install net-tools

  5. 让div充满整个body

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. #614 C. NEKO's Maze Game[简易DFS,0|1转换]

    起初一直看不懂题的意思,最后看了大佬的视频讲解才明白了题的意思. 题意:每次询问重复的时候抵消上一次操作  如果是奇数次的操作则视为障碍阻挡前进 收获:0和1的转换技巧,简单搜索和巧定义全局变量,没必 ...

  7. JavaScript——event事件详解

    1.事件对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 什么时候会产生Event 对象呢? 例如: 当用户单击某个元素的时候,我们给这个元 ...

  8. php/phpmyadmin新手式环境搭建

    之前就在折腾 zabbix 的时候遇到一个情况, 安装 php6 的时候各种库丢失, 最重要的 gd 经常跑路 只是无意中遇到了一种小方式, 现在已经迷糊了, 前天因为在部署 phpAdmin 的时候 ...

  9. C++ 解决列车重排问题

    问题节选自<<数据结构.算法与应用(C++语言描述)>>, 思路与代码为原创, 如有疏漏及问题欢迎指正 问题描述: 一辆列车有n节车厢, 车厢排列乱序(如: 284657139 ...

  10. SpringBoot安全管理--(二)基于数据库的认证

    简介: 上篇文章向读者介绍的认证数据都是定义在内存中的,在真实项目中,用户的基本信息以及角色等都存储在数据库中,因此需要从数据库中获取数据进行认证. 开始: 首先建表并且插入数据: pom.xml & ...