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. [[email protected] ~]# 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. [[email protected] ~]# exit
    8. logout
    9. [[email protected] 桌面]$ 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. [[email protected] 桌面]$ sudo useradd user3  #测试
    21. [[email protected] 桌面]$ sudo passwd user3
    22. 更改用户 user3 的密码 。
    23. 新的 密码:
    24. 无效的密码: 过短
    25. 无效的密码: 过于简单
    26. 重新输入新的 密码:
    27. passwd: 所有的身份验证令牌已经成功更新。
    28. [[email protected] 桌面]$ id user3    #添加user3成功
    29. uid=503(user3) gid=503(user3) 组=503(user3)
    30. [[email protected]l 桌面]$ visudo  #普通用户不允许编辑
    31. visudo: /etc/sudoers: Permission denied
    32. visudo: /etc/sudoers: Permission denied
    33. [[email protected] 桌面]$ su - root
    34. 密码:
    35. [[email protected] ~]# visudo
    36. [[email protected] ~]# cat /etc/sudoers |grep user1 #编辑增加了下面一行
    37. user1   ALL=(user2) /bin/ls
    38. [[email protected] ~]# su - user1
    39. [[email protected] ~]$ 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. [[email protected] ~]$ ls /home/user2  #user1直接查看user2的家目录肯定是不允许的
    56. ls: 无法打开目录/home/user2: 权限不够
    57. [[email protected] ~]$ sudo -u user2 ls /home/user2    #但是sudo以user2的身份查看就可以
    58. a
    59. #这里不能以user2的身份添加用户,因为user2本身还没有useradd的权限
    60. #事实上,即使给user2 sudo的添加用户权限这样也是不行的,因为user2添加的时候也要sudo的啊
    61. #直接以user2肯定不行,看演示。
    62. [[email protected] ~]$ 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. [[email protected] ~]$ exit
    65. logout
    66. [[email protected] ~]# visudo
    67. #添加了这行,给user2 sudo添加用户的权限,这时候sudo -u user2 useradd user4是否可以呢?不行的!
    68. user2   ALL=(root)      /usr/sbin/useradd,/usr/bin/passwd
    69. [[email protected] ~]# su - user2
    70. [[email protected] ~]$ 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. [[email protected] ~]$ su - user1
    87. 密码:
    88. [[email protected] ~]$ 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. [[email protected] ~]$
    91. #总结下,sudo -u 用户名 命令 ,当前用户以某个用户的身份执行某个命令的时候,必须这个用户本身不加sudo的情况
    92. #直接能执行的命令,才可以这种方式执行。另外,sudo不加-u,默认以root身份执行
    93. [[email protected] ~]$ exit
    94. logout
    95. [[email protected] ~]$ exit
    96. logout
    97. [[email protected] ~]# 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. [[email protected] ~]# su - user1
    113. [[email protected] ~]$ 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. [[email protected] ~]$ su - user2
    125. 密码:
    126. [[email protected] ~]$ 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. [[email protected] ~]$

原文地址:https://www.cnblogs.com/exmyth/p/9074718.html

时间: 2024-10-08 03:25:26

sudo配置临时取得root权限的相关文章

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

su(superuser) su表示切换用户,如: 输入:su命令后回车表示切换当前的用户到root用户,或者: 输入:su - root(或者其他用户名)这里加了"-"后表示也切换的当前的环境变量到新用户的环境变量. su root(或者其他用户名)表示不切换环境变量到当前用户下. sudo 表示获取临时的root权限命令,如: sudo gedit /etc/shadow,表示临时使用root权限来编辑/etc/shadow密码文件,因为/etc/shadow密码文件需要使用roo

sudo配置 sudoers配置文件

在linux系统中, 普通用户的权限很低, 比如shutdown关机, 或者yum install安装软件等很多命令都需要root用户权限来运行. 普通用户想要执行这些命令, 要么使用su命令切换为root用户, 而使用su命令需要输入root密码, 当服务器很多人共同管理, 所有管理员都需要知道root密码, 是很不安全的; 要么使用sudo命令临时获取root权限, 而执行sudo命令只需要用户自己的密码, 甚至可以免密码, 而且只有通过配置的特殊用户才具有sudo特权, 只要权限分配合理,

Debian普通用户获取root权限|sudo的安装与配置

Debian系统的普通用户需要安装软件时,往往会收到“Permission denied”的提示,这时候需要root权限.那么如何在不登陆超级管理员账户的前提下拥有root权限呢?对于大多数Linux系统来说,我们可以通过“sudo”命令来获取root权限,或者通过“su”登陆超级管理员账户来进行各种需要root权限的操作. 然而,Debian系统好像默认不安装sudo,所以下面将讲解“如何安装sudo及配置其sudoers文件” 首先登陆超级管理员账户,在 Terminal 命令行内输入 su

sudo配置简介

在linux系统中,由于root的权限过大,一般情况都不使用它.只有在一些特殊情况下才采用登录root执行管理任务,一般情况下临时使用root权限多采用su和sudo命令. 1.su和su -的区别 虽然su和su -都是直接切换到root用户,但是su的切换并不完全,使用的环境变量还是原来用户的,而su -切换的则为真正的root,和直接使用root登录一样.我们可以通过实验验证! 从上图可以验证上面的结论,至于为什么这个可以自行百度,在这里只要知道用su命令的时候要使用su - 用户名. 2

Centos root权限的变化

方法一:更改 /etc/sudoers 文件, 找到以下一行,把前面的凝视(#)去掉 ## Allows people in group wheel to run all commands %wheel    ALL=(ALL)    ALL 然后改动用户,使其属于root组(wheel), 命令例如以下: #usermod -g root devuser 改动完成,如今能够用tommy帐号登录,然后用命令 su – .就可以获得root权限进行操作. 方法二:改动 /etc/sudoers 文

linux下添加用户并赋予root权限(转)

转自:http://blog.csdn.net/stormbjm/article/details/9086163 1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy   //修改密码 Changing password for user tommy.New UNIX password:     //在这里输入新密码Retype new UNIX password:  //再次输入新密码pas

redhat赋予普通用户root权限

方法一:修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉 ## Allows people in group wheel to run all commands%wheel    ALL=(ALL)    ALL 然后修改用户,使其属于root组(wheel),命令如下: usermod -g root tommy 或者直接添加用户到 username ALL=(ALL)     ALL 注意sudoers是只读文件,要先将文件权限改为可写 方法二:修改 /etc/su

Centos root权限修改

方法一:修改 /etc/sudoers 文件, 找到下面一行,把前面的注释(#)去掉 ## Allows people in group wheel to run all commands %wheel    ALL=(ALL)    ALL 然后修改用户,使其属于root组(wheel), 命令如下: #usermod -g root devuser 修改完毕,现在可以用tommy帐号登录,然后用命令 su – ,即可获得root权限进行操作. 方法二:修改 /etc/sudoers 文件,

linux中如何添加用户并赋予root权限详解

1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser eric //添加一个名为eric的用户 #passwd eric//修改密码 Changing password for user eric. New UNIX password: //在这里输入新密码 Retype new UNIX password: //再次输入新密码 passwd: all authentication tokens updated successfully. 2.赋予root权限 方