• sudo配置临时取得root权限


    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 plain copy
     
      1. [root@mail ~]# visudo   
      2.   
      3. #chen为普通用户,ALL可以从任何的主机登陆,(root)可以以root身份,后面是可以执行的命令,最好写全路径  
      4.      88 ## Allow root to run any commands anywhere  
      5.      89 root    ALL=(ALL)       ALL  
      6.      90 chen    ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd  
      7.      91 ## Allows members of the 'sys' group to run networking, software,  
      8.   
      9.   
      10. [root@mail ~]# exit  
      11. logout  
      12. [chen@mail 桌面]$ sudo -l #查看自己可以执行的sudo命令  
      13. [sudo] password for chen:   #输入自己的密码  
      14. Matching Defaults entries for chen on this host:  
      15.     requiretty, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME  
      16.     HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME  
      17.     LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION  
      18.     LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC  
      19.     LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS  
      20.     _XKB_CHARSET XAUTHORITY", secure_path=/sbin:/bin:/usr/sbin:/usr/bin  
      21.   
      22. User chen may run the following commands on this host:  
      23.     (root) /usr/sbin/useradd, (root) /usr/bin/passwd    #这里看到可以执行的sudo命令  
      24. [chen@mail 桌面]$ sudo useradd user3  #测试  
      25. [chen@mail 桌面]$ sudo passwd user3  
      26. 更改用户 user3 的密码 。  
      27. 新的 密码:  
      28. 无效的密码: 过短  
      29. 无效的密码: 过于简单  
      30. 重新输入新的 密码:  
      31. passwd: 所有的身份验证令牌已经成功更新。  
      32. [chen@mail 桌面]$ id user3    #添加user3成功  
      33. uid=503(user3) gid=503(user3) 组=503(user3)  
      34. [chen@mail 桌面]$ visudo  #普通用户不允许编辑  
      35. visudo: /etc/sudoers: Permission denied  
      36. visudo: /etc/sudoers: Permission denied  
      37. [chen@mail 桌面]$ su - root     
      38. 密码:  
      39. [root@mail ~]# visudo   
      40. [root@mail ~]# cat /etc/sudoers |grep user1 #编辑增加了下面一行  
      41. user1   ALL=(user2) /bin/ls  
      42. [root@mail ~]# su - user1  
      43. [user1@mail ~]$ sudo -l  
      44.   
      45. We trust you have received the usual lecture from the local System  
      46. Administrator. It usually boils down to these three things:  
      47.   
      48.     #1) Respect the privacy of others.  
      49.     #2) Think before you type.  
      50.     #3) With great power comes great responsibility.  
      51.   
      52. [sudo] password for user1:   
      53. Matching Defaults entries for user1 on this host:  
      54.     requiretty, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME  
      55.     HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME  
      56.     LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION  
      57.     LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC  
      58.     LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS  
      59.     _XKB_CHARSET XAUTHORITY", secure_path=/sbin:/bin:/usr/sbin:/usr/bin  
      60.   
      61. User user1 may run the following commands on this host:  
      62.     (user2) /bin/ls  
      63. [user1@mail ~]$ ls /home/user2  #user1直接查看user2的家目录肯定是不允许的  
      64. ls: 无法打开目录/home/user2: 权限不够  
      65. [user1@mail ~]$ sudo -u user2 ls /home/user2    #但是sudo以user2的身份查看就可以  
      66. a  
      67.   
      68. #这里不能以user2的身份添加用户,因为user2本身还没有useradd的权限  
      69. #事实上,即使给user2 sudo的添加用户权限这样也是不行的,因为user2添加的时候也要sudo的啊  
      70. #直接以user2肯定不行,看演示。  
      71. [user1@mail ~]$ sudo -u user2 useradd user4 #这时候不能添加  
      72. Sorry, user user1 is not allowed to execute '/usr/sbin/useradd user4' as user2 on mail.example.com.  
      73. [user1@mail ~]$ exit  
      74. logout  
      75. [root@mail ~]# visudo     
      76. #添加了这行,给user2 sudo添加用户的权限,这时候sudo -u user2 useradd user4是否可以呢?不行的!  
      77.  user2   ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd  
      78. [root@mail ~]# su - user2  
      79. [user2@mail ~]$ sudo -l  
      80.   
      81. We trust you have received the usual lecture from the local System  
      82. Administrator. It usually boils down to these three things:  
      83.   
      84.     #1) Respect the privacy of others.  
      85.     #2) Think before you type.  
      86.     #3) With great power comes great responsibility.  
      87.   
      88. [sudo] password for user2:   
      89. Matching Defaults entries for user2 on this host:  
      90.     requiretty, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME  
      91.     HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME  
      92.     LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION  
      93.     LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC  
      94.     LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS  
      95.     _XKB_CHARSET XAUTHORITY", secure_path=/sbin:/bin:/usr/sbin:/usr/bin  
      96.   
      97. User user2 may run the following commands on this host:  
      98.     (root) /usr/sbin/useradd, (root) /usr/bin/passwd  
      99. [user2@mail ~]$ su - user1  
      100. 密码:  
      101. [user1@mail ~]$ sudo -u user2 useradd user4 #答案在此,不行的!  
      102. Sorry, user user1 is not allowed to execute '/usr/sbin/useradd user4' as user2 on mail.example.com.  
      103. [user1@mail ~]$   
      104. #总结下,sudo -u 用户名 命令 ,当前用户以某个用户的身份执行某个命令的时候,必须这个用户本身不加sudo的情况  
      105. #直接能执行的命令,才可以这种方式执行。另外,sudo不加-u,默认以root身份执行  
      106.   
      107. [user1@mail ~]$ exit  
      108. logout  
      109. [user2@mail ~]$ exit  
      110. logout  
      111. [root@mail ~]# visudo   
      112. #改动如下:删除了91,92行,  
      113.      88 ## Allow root to run any commands anywhere  
      114.      89 root    ALL=(ALL)       ALL  
      115.      90 chen    ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd  
      116.      91 user1   ALL=(user2)     /bin/ls     #删除  
      117.      92 user2   ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd   #删除  
      118.   
      119.      88 ## Allow root to run any commands anywhere  
      120.      89 root    ALL=(ALL)       ALL  
      121.      90 chen    ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd  
      122.      91 ADMIN   ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd   #新添加  
      123.   
      124.      20 # User_Alias ADMINS = jsmith, mikem  
      125.      21  User_Alias ADMIN = user1, user2        #新添加  
      126.      22   
      127. #这里相当于ADMIN为user1,user2的别名,这个别名具有添加用户的权限,user1和user2也具有这个权限  
      128. [root@mail ~]# su - user1  
      129. [user1@mail ~]$ sudo -l  
      130. [sudo] password for user1:   
      131. Matching Defaults entries for user1 on this host:  
      132.     requiretty, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME  
      133.     HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME  
      134.     LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION  
      135.     LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC  
      136.     LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS  
      137.     _XKB_CHARSET XAUTHORITY", secure_path=/sbin:/bin:/usr/sbin:/usr/bin  
      138.   
      139. User user1 may run the following commands on this host:  
      140.     (root) /usr/sbin/useradd, (root) /usr/bin/passwd    #可以看到user1有useradd权限  
      141. [user1@mail ~]$ su - user2  
      142. 密码:  
      143. [user2@mail ~]$ sudo -l  
      144. [sudo] password for user2:   
      145. Matching Defaults entries for user2 on this host:  
      146.     requiretty, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME  
      147.     HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME  
      148.     LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION  
      149.     LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC  
      150.     LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS  
      151.     _XKB_CHARSET XAUTHORITY", secure_path=/sbin:/bin:/usr/sbin:/usr/bin  
      152.   
      153. User user2 may run the following commands on this host:  
      154.     (root) /usr/sbin/useradd, (root) /usr/bin/passwd    #user2也有  
      155. [user2@mail ~]$   
  • 相关阅读:
    商业软件太贵?找开源替代品
    Odoo9发行说明
    Odoo(OpenERP)配置文件openerp-server.conf详解
    MyBatis-Generator最佳实践
    elasticsearch 口水篇(1) 安装、插件
    log4j直接输出日志到flume
    Maven编译时跳过Test
    Flume1.5.0的安装、部署、简单应用(含伪分布式、与hadoop2.2.0、hbase0.96的案例)
    Flume 1.5.0简单部署试用
    一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等
  • 原文地址:https://www.cnblogs.com/wajika/p/6902546.html
Copyright © 2020-2023  润新知