sudo配置临时取得root权限
系统中的普通用户有时需要root权限执行某种操作,要是使用su - root的话必须要知道root的密码,这是不安全的,所以有了sudo,root可以对/etc/sudoers做一定的配置,让普通用户
在不切换到root的情况下,执行一些只有root才能执行的操作。这个文件只能root去修改,建议使用visudo这个命令修改,而不是直接vim /etc/sudoers。
原因有二:
◦ 一是它能够防止两个用户同时修改它;
◦ 二是它也能进行有限的语法检查。
当编辑这个文件有错误时,使用visudo会给出错误提示,此时可以按e重新编辑,x不保存退出,Q保存退出,如果选择Q,sudo就不能正常工作了。

实验过程完成了给指定用户sudo权限和用别名指定一组用户的可以执行的sudo指令

过程如下:

[plain] view plaincopy
  1. [root@mail ~]# visudo
  2. #chen为普通用户,ALL可以从任何的主机登陆,(root)可以以root身份,后面是可以执行的命令,最好写全路径
  3. 88 ## Allow root to run any commands anywhere
  4. 89 root    ALL=(ALL)       ALL
  5. 90 chen    ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd
  6. 91 ## Allows members of the 'sys' group to run networking, software,
  7. [root@mail ~]# exit
  8. logout
  9. [chen@mail 桌面]$ sudo -l #查看自己可以执行的sudo命令
  10. [sudo] password for chen:   #输入自己的密码
  11. Matching Defaults entries for chen on this host:
  12. requiretty, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME
  13. HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME
  14. LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
  15. LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC
  16. LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS
  17. _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
  18. User chen may run the following commands on this host:
  19. (root) /usr/sbin/useradd, (root) /usr/bin/passwd    #这里看到可以执行的sudo命令
  20. [chen@mail 桌面]$ sudo useradd user3  #测试
  21. [chen@mail 桌面]$ sudo passwd user3
  22. 更改用户 user3 的密码 。
  23. 新的 密码:
  24. 无效的密码: 过短
  25. 无效的密码: 过于简单
  26. 重新输入新的 密码:
  27. passwd: 所有的身份验证令牌已经成功更新。
  28. [chen@mail 桌面]$ id user3    #添加user3成功
  29. uid=503(user3) gid=503(user3) 组=503(user3)
  30. [chen@mail 桌面]$ visudo  #普通用户不允许编辑
  31. visudo: /etc/sudoers: Permission denied
  32. visudo: /etc/sudoers: Permission denied
  33. [chen@mail 桌面]$ su - root
  34. 密码:
  35. [root@mail ~]# visudo
  36. [root@mail ~]# cat /etc/sudoers |grep user1 #编辑增加了下面一行
  37. user1   ALL=(user2) /bin/ls
  38. [root@mail ~]# su - user1
  39. [user1@mail ~]$ sudo -l
  40. We trust you have received the usual lecture from the local System
  41. Administrator. It usually boils down to these three things:
  42. #1) Respect the privacy of others.
  43. #2) Think before you type.
  44. #3) With great power comes great responsibility.
  45. [sudo] password for user1:
  46. Matching Defaults entries for user1 on this host:
  47. requiretty, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME
  48. HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME
  49. LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
  50. LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC
  51. LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS
  52. _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
  53. User user1 may run the following commands on this host:
  54. (user2) /bin/ls
  55. [user1@mail ~]$ ls /home/user2  #user1直接查看user2的家目录肯定是不允许的
  56. ls: 无法打开目录/home/user2: 权限不够
  57. [user1@mail ~]$ sudo -u user2 ls /home/user2    #但是sudo以user2的身份查看就可以
  58. a
  59. #这里不能以user2的身份添加用户,因为user2本身还没有useradd的权限
  60. #事实上,即使给user2 sudo的添加用户权限这样也是不行的,因为user2添加的时候也要sudo的啊
  61. #直接以user2肯定不行,看演示。
  62. [user1@mail ~]$ sudo -u user2 useradd user4 #这时候不能添加
  63. Sorry, user user1 is not allowed to execute '/usr/sbin/useradd user4' as user2 on mail.example.com.
  64. [user1@mail ~]$ exit
  65. logout
  66. [root@mail ~]# visudo
  67. #添加了这行,给user2 sudo添加用户的权限,这时候sudo -u user2 useradd user4是否可以呢?不行的!
  68. user2   ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd
  69. [root@mail ~]# su - user2
  70. [user2@mail ~]$ sudo -l
  71. We trust you have received the usual lecture from the local System
  72. Administrator. It usually boils down to these three things:
  73. #1) Respect the privacy of others.
  74. #2) Think before you type.
  75. #3) With great power comes great responsibility.
  76. [sudo] password for user2:
  77. Matching Defaults entries for user2 on this host:
  78. requiretty, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME
  79. HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME
  80. LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
  81. LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC
  82. LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS
  83. _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
  84. User user2 may run the following commands on this host:
  85. (root) /usr/sbin/useradd, (root) /usr/bin/passwd
  86. [user2@mail ~]$ su - user1
  87. 密码:
  88. [user1@mail ~]$ sudo -u user2 useradd user4 #答案在此,不行的!
  89. Sorry, user user1 is not allowed to execute '/usr/sbin/useradd user4' as user2 on mail.example.com.
  90. [user1@mail ~]$
  91. #总结下,sudo -u 用户名 命令 ,当前用户以某个用户的身份执行某个命令的时候,必须这个用户本身不加sudo的情况
  92. #直接能执行的命令,才可以这种方式执行。另外,sudo不加-u,默认以root身份执行
  93. [user1@mail ~]$ exit
  94. logout
  95. [user2@mail ~]$ exit
  96. logout
  97. [root@mail ~]# visudo
  98. #改动如下:删除了91,92行,
  99. 88 ## Allow root to run any commands anywhere
  100. 89 root    ALL=(ALL)       ALL
  101. 90 chen    ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd
  102. 91 user1   ALL=(user2)     /bin/ls     #删除
  103. 92 user2   ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd   #删除
  104. 88 ## Allow root to run any commands anywhere
  105. 89 root    ALL=(ALL)       ALL
  106. 90 chen    ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd
  107. 91 ADMIN   ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd   #新添加
  108. 20 # User_Alias ADMINS = jsmith, mikem
  109. 21  User_Alias ADMIN = user1, user2        #新添加
  110. 22
  111. #这里相当于ADMIN为user1,user2的别名,这个别名具有添加用户的权限,user1和user2也具有这个权限
  112. [root@mail ~]# su - user1
  113. [user1@mail ~]$ sudo -l
  114. [sudo] password for user1:
  115. Matching Defaults entries for user1 on this host:
  116. requiretty, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME
  117. HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME
  118. LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
  119. LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC
  120. LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS
  121. _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
  122. User user1 may run the following commands on this host:
  123. (root) /usr/sbin/useradd, (root) /usr/bin/passwd    #可以看到user1有useradd权限
  124. [user1@mail ~]$ su - user2
  125. 密码:
  126. [user2@mail ~]$ sudo -l
  127. [sudo] password for user2:
  128. Matching Defaults entries for user2 on this host:
  129. requiretty, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME
  130. HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME
  131. LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
  132. LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC
  133. LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS
  134. _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
  135. User user2 may run the following commands on this host:
  136. (root) /usr/sbin/useradd, (root) /usr/bin/passwd    #user2也有
  137. [user2@mail ~]$

转载于:https://www.cnblogs.com/exmyth/p/9074718.html

sudo配置临时取得root权限相关推荐

  1. Linux 临时获取root权限

    在linux普通用户下新建: test-uid.c #include<stdio.h> #include<stdlib.h> #include<unistd.h> ...

  2. linux切换至root权限,【linux】sudo su切换到root权限

    随心所欲导出你的 UI 界面到 PDF 文件 使用 C1PDF 控件可以导出文件到 PDF 文件,结合 .NET 平台特性你可以在任何客户端生成自定义报表.你可以打印任何 UI 界面,例如 DataG ...

  3. linux权限sudo和su,Linux su和sudo命令的区别,并获得root权限

    su(superuser) su表示切换用户,如: 输入:su命令后回车表示切换当前的用户到root用户,或者: 输入:su - root(或者其他用户名)这里加了"-"后表示也切 ...

  4. Linux su和sudo命令的区别,并获得root权限

    su(superuser) su表示切换用户,如: 输入:su命令后回车表示切换当前的用户到root用户,或者: 输入:su - root(或者其他用户名)这里加了"-"后表示也切 ...

  5. linux如何进入su超级用户,Linux下普通用户用sudo su给自己加root权限的方法

    首先: sudo这个命令就是给后面的命令加上root权限(sudo=superuser do),su这个命令是switch user,切换用户,你sudo su这个命令的意思是用root的权限来切换到 ...

  6. Ubuntu 获取 root 权限 (临时永久)

      Ubuntu获取root权限 操作环境:Win7 + VMware Workstation 12.0.1 + Ubuntu 12.04 1.临时获取root权限: Ctrl+Alt+T   ...

  7. 惠普企业警告:Sudo 漏洞可使攻击者获得 Aruba 平台的 root 权限

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 惠普企业 (HPE) 警告称,其 Aruba AirWave 管理平台中使用的开源程序 Sudo 中存在一个高危漏洞 (CVE-2021-315 ...

  8. su 、 sudo 命令及限制 root 远程登录

    2019独角兽企业重金招聘Python工程师标准>>> 1.su 命令 之前说到一个命令 su ,是用来切换用户的.见下图 命令 su - lys 中的 - ,是为了彻底切换用户,包 ...

  9. android root权限破解分析

    破解android的root权限的本质是:在系统中加入一个任何用户都可能用于登陆的su命令.或者说替换掉系统中的su程序,因为系统中的默认su程序需要验证实际用户权限,只有root和 shell用户才 ...

最新文章

  1. react hooks使用_如何使用React和Hooks检测外部点击
  2. Nagios Web 页面声音报警
  3. 零代码入门GitHub,图形化交互让你轻松存代码 | 附Git GUI推荐
  4. 实验7.2 二维数组 7-6 方阵循环右移
  5. 使用nginx部署简单的前端项目,nginx.conf配置
  6. java文件客户端下载_使用Java写一个minio的客户端上传下载文件
  7. iis php重定向循环,iis和apache及PHP页面设置301重定向跳转方法
  8. 扫描器scanner的源代码
  9. c++opencv显示中文_OpenCV安装,配置和运行
  10. win7插了耳机还是外放_有哪些令人叫绝的智障设计?网友:手机取消耳机孔
  11. 面试官系统精讲Java源码及大厂真题 - 09 TreeMap 和 LinkedHashMap 核心源码解析
  12. 7-227 PAT排名汇总 (25 分)
  13. 95-260-055-源码-检查点-Savepoint 和 Checkpoint的异同
  14. 水调歌头·明月几时有
  15. 台式计算机的cpu,台式电脑处理器(CPU)性能排行榜
  16. Excel快速拆分单元格内容
  17. Android 4.1 (Jelly Bean,果冻豆)
  18. 创建列表、删除列表、查看列表长度、列表增加一个元素的几种方法
  19. Burp Suite爆破Basic认证密码
  20. 星形线再回顾--切线(点)构成曲线

热门文章

  1. ashly理器4.8软件汉化版_AMD 处理器核心比英特尔多还更便宜?英特尔回应
  2. java任务分支和合并_合并/分支战略
  3. java婚庆网站源码_基于jsp的婚庆网站-JavaEE实现婚庆网站 - java项目源码
  4. php-cgi cpu很高,php-cgi占用cpu资源过高的解决方法
  5. java setsolinger_java socket 的参数选项解读(转)
  6. go 基准测试 找不到函数_基于Golang做测试
  7. 数组中第K个最大元素
  8. LLVM与Codegen技术
  9. scala字符替换_如何替换Scala中的“坏”字符?
  10. 远控免杀专题(16)-Unicorn免杀