sudo:控制用户对系统命令的使用权限,root允许的操作。通过sudo可以提高普通用户的操作权限,不过这个权限是需要进行配置才可使用。

常用的命令展示

配置sudo的2种方式

  1. 1. visodu 编辑
  1. visudo: 编辑sudo配置文件(相当于 vi /etc/sudoers,但是不建议用,注意检查语法)
  1. visudo 编辑/etc/sudoers命令 ->98
  1. visudo -c 检查语法命令,有报错可能导致系统起不来,所以编辑之前需要备份,编辑后最好检查一下用法
  1. ll /etc/sudoers 这个是一个权限很小的文件(440)
  1. 2. vi /etc/sudoers(98gg 可以快速跳转) 但是visudo功能更强大
  1. Syntax: user MACHINE=COMMANDS # sudo 语法
  2. root ALL=(ALL) ALL # (All)表示允许用户以哪个用户的权限做事情
  3. omd ALL=(ALL) ALL # omd用户在任何机器上,可以只需任何用户的任何命令 == root用户
  4. omd ALL=(ALL) NOPASSWD: ALL # 免密而且omd用户在任何机器上,可以只需任何用户的任何命令
  5. ftl ALL=(ALL) /bin/cp,/bin/touch # 只允许ftl用户只需root用户的cp,touch命令

取消sudo必须需要tty才能执行的限制

  1. 编辑 /etc/sudoers ,找到 Defaults requiretty, 然后注释掉这行:

: /etc/sudoers  这个是一个权限很小的文件(440)

sudo基本的操作

  1. sudo omd ifconfig ==>omd用户只需root权限需要输入密码
  2. [test@oldboy ~] $ sudo su - omd
  3. # 通过test用户切换到omd,所以此时输入的是test用户的密码
  4. test用户下:su - root -c "ifconfig" 需要输入密码常用的参数:
  5. sudo常用参数:
  6. -l : 登录用户下面,执行sudo -l 显示当前用户有哪些权限
  7. -k :删除/var/db/sudo/下面对应的时间戳的信息,下次执行sudo需要输入当前用户的密码
  8. --> 系统默认也是5分钟失效
  9. --> 配置免密是另一种情况 NOPASSWD: ALL远程sudo(有条件限制的)
  10. sudo的原创操作:
    ssh p lemFTL@HHH omd@10.105.163.162 sudo ls /root

sudo别名的应用

1.主机别名

  1. # Host_Alias FILESERVERS = fs1, fs2 -->注意逗号,空格
  2. # Host_Alias MAILSERVERS = smtp, smtp2 -->注意逗号,空格
  3. 2.用户别名
  4. # User_Alias ADMINS = jsmith, mikem,%omd -->omd的用户组添加上去
  5. 3.命令别名
  6. # Cmnd_Alias NETWORKING = /sbin/route, /sbin/iwconfig, /sbin/mii-tool
  7. 4.角色别名 -->运行时可以切换的角色
  8. #Runas_Alias OP = root,omd
  9. 5.实例
  10. user MACHINE COMMANDS
  11. ADMINS FILESERVERS=(Runas_Alias) ALL
  12. 包含2个用户的ADMINS
  13. 可以再包含2个机器的FILESERVERS
  14. 切换到包含2个角色别名Runas_Alias的服务器上,
  15. 执行包含3个命令的Cmnd_Alias
  16. 另:不切换用户而直接执行命令:

sudo原理

普通用户运行sudo -> 检查/var/db/sudo/下是否有时间戳文件(执行成功后会创建,且免密5分钟),并检查是否已经过期
                   
未过期    ->
检查/etc/sudoers里面是否配置了运行sudo和执行相应命令的权限
                               
->有权限 ->执行命令并且返回结果 ->退出
                                ->无权限
->退出
                      过期  -> 输入当前用户自己的口令
->检查/etc/sudoers里面是否配置了运行sudo和执行相应命令的权限
                               
->有权限 ->执行命令并且返回结果 ->退出
                                ->无权限
->退出

sudo配置的注意事项

1.命令别名下的成员必须是文件或者是目录的绝对路径
    2.别名是包含大写字母,数字,下划线,如果是字母就必须全部大写
   
3.一个别名下有多个成员,成员与成员之间必须使用逗号分隔,且成员必须有效的存在
   
4.别名成员受Host_Alias,User_Alias,Cmnd_Alias,Runas_Alias别名类型制约,定义什么类型的别名,就要有什么类型的成员匹配
   
5.别名规则是每行算一个规则,如果一个别名规则一行容不下是,可以通过“\”来续行
   
6.指定切换的用户要用()括起来,如果省略括号,默认是root   
    7.如果不需要输入密码可以输入NOPASSWD:ALL
   
8.禁止的命令可以通过!来进行限制,根据测试,先执行后面的命令,
        所以禁止的命令必须放在允许执行的命令的后面
   
9.用户组前面必须用%号   
    10.所有的授权ALL字符都必须是大写
   
11.允许执行的命令都是有顺序的,命令的顺序是从后向前生效
        所以禁止的命令尽量向后放

sudo管理的2个文件

/var/db/sudo/
    /etc/sudoers
    man sudo
    man
sudoers

sudo实例--企业生产环境用户权限集中管理方案实例

  1. 【更多参考】sudo实例--企业生产环境用户权限集中管理方案实例

visudo的参数

  1. The options are as follows:
  2.  
  3. -c Enable check-only mode. The existing sudoers file will be checked for syntax errors, owner
  4. and mode. A message will be printed to the standard output describing the status of
  5. -c Enable check-only mode. The existing sudoers file will be checked for syntax errors, owner
  6. and mode. A message will be printed to the standard output describing the status of
  7. sudoers unless the -q option was specified. If the check completes successfully, visudo
  8. will exit with a value of 0. If an error is encountered, visudo will exit with a value of
  9. 1.
  10.  
  11. -f sudoers Specify and alternate sudoers file location. With this option visudo will edit (or check)
  12. the sudoers file of your choice, instead of the default, /etc/sudoers. The lock file used
  13. is the specified sudoers file with “.tmp appended to it. In check-only mode only, the
  14. argument to -f may be ‘-’, indicating that sudoers will be read from the standard input.
  15.  
  16. -h The -h (help) option causes visudo to print a short help message to the standard output and
  17. exit.
  18.  
  19. -q Enable quiet mode. In this mode details about syntax errors are not printed. This option
  20. is only useful when combined with the -c option.
  21.  
  22. -s Enable strict checking of the sudoers file. If an alias is used before it is defined,
  23. visudo will consider this a parse error. Note that it is not possible to differentiate
  24. between an alias and a host name or user name that consists solely of uppercase letters,
  25. digits, and the underscore (‘_’) character.
  26.  
  27. -V The -V (version) option causes visudo to print its version number and exit.

Linux sudo详解的更多相关文章

  1. Linux sudo 详解

    简单的说,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码.严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色 ...

  2. Linux 系统结构详解

    Linux 系统结构详解 Linux系统一般有4个主要部分: 内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统 ...

  3. Linux 目录详解 树状目录结构图

    1.树状目录结构图 2./目录 目录 描述 / 第一层次结构的根.整个文件系统层次结构的根目录. /bin/ 需要在单用户模式可用的必要命令(可执行文件):面向所有用户,例如:cat.ls.cp,和/ ...

  4. Linux命令详解之—tail命令

    tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...

  5. Linux命令详解之—less命令

    Linux下还有一个与more命令非常类似的命令--less命令,相比于more命令,less命令更加灵活强大一些,今天就给大家介绍下Linux下的less命令. 更多Linux命令详情请看:Linu ...

  6. Linux命令详解之—more命令

    Linux more命令同cat命令一样,多用来查看文件内容,本文就为大家介绍下Linux more命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux的more命令类似 ca ...

  7. 【转】linux命令详解:md5sum命令

    [转]linux命令详解:md5sum命令 转自:http://blog.itpub.net/29320885/viewspace-1710218/ 前言 在网络传输.设备之间转存.复制大文件等时,可 ...

  8. Linux命令详解之—cat命令

    cat命令的功能是连接文件或标准输入并打印,今天就为大家介绍下Linux中的cat命令. 更多Linux命令详情请看:Linux命令速查手册 Linux 的cat命令通常用来显示文件内容,也可以用来将 ...

  9. Linux命令详解之—pwd命令

    Linux的pwd命令也是一个非常常用的命令,本文为大家介绍下Linux中pwd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux pwd命令用于显示工作目录. 执行pwd指 ...

随机推荐

  1. Spring Boot 使用Redis

    转载自:http://www.cnblogs.com/ityouknow/p/5748830.html Redis支持更丰富的数据结构,例如hashes, lists, sets等,同时支持数据持久化 ...

  2. FineUI表格、窗体、按钮组及事件

    //表格 @(F.Grid().IsFluid(true).CssClass("blockpanel").Title("表格").ShowHeader(true ...

  3. Service生命周期以及应用

    Service概念及用途: Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行 ...

  4. 并发编程之ThreadLocal源码分析

    当访问共享的可变数据时,通常需要使用同步.一种避免同步的方式就是不共享数据,仅在单线程内部访问数据,就不需要同步.该技术称之为线程封闭. 当数据封装到线程内部,即使该数据不是线程安全的,也会实现自动线 ...

  5. hdu Rescue 1242

    Rescue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  6. 云服务器部署mongodb

    我喜欢用简单的方法 步骤 下载 解压并运行 远程连接测试 下载 到官方下载页获取下载地址,如图 在云服务器上,使用命令curl 你的地址 -o mongodb.tgz ,下载到当前目录,转到下一步. ...

  7. idea 版本升级至最新版

    前言:当前最新版为官网上的2018.2.3版本 一.下载最新版 官网地址:http://www.jetbrains.com/idea/download/#section=windows 百度网盘地址: ...

  8. vue+element ui 的表格列使用组件

    前言:工作中用到 vue+element ui 的前端框架,有这个场景:很多表格的列有许多一样的,所以考虑将列封装为组件.转载请注明出处:https://www.cnblogs.com/yuxiaol ...

  9. 实习小结(五)--- SSM框架搭建(Maven项目)

    之前分享了一个普通的SSM框架的搭建方法,感觉还是过于老套,现在都流行使用Maven来管理项目,在这分享一个使用Maven搭建的SSM(SpringMVC+Spring+MyBatis) 1.首先ma ...

  10. db2存储过程迁移

    一.导出存储过程 EXPORT TO D:/PROCUDURE/procudure.del OF del MODIFIED BY LOBSINFILE SELECT 'SET CURRENT SCHE ...