sudo配置临时取得root权限

摘要:
sudo配置临时获得root权限。系统中的普通用户有时需要root权限才能执行某些操作。如果使用su root,则必须知道root密码。实验过程完成了可以为指定用户和一组具有别名的用户执行的sudo指令:

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 ~]$   

免责声明:文章转载自《sudo配置临时取得root权限》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇pd.read_html 获取网页上的表格数据点击劫持(ClickJacking)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Gitlab 修改ldap认证

1. 备份数据 2. 修改配置 使用自己搭建的openldap 使用用户中心的openldap 说明:base属性执行所有员工,user_filter属性主要用来实现分组功能。上面的配置是只有ldap中的gitlab分组中的用户可以登录GitLab。 3、重新加载GitLab配置; # sudo gitlab-ctl reconfigure 4、重...

linux 利用 cron 实现 程序开机启动/cron任务的多种实现方法/cron重启/cron日志开启

方法一、登录服务器,直接修改:crontab -e然后添加:@reboot [nohup] {命令} ...# 或者定时任务指令保存退出: ctrl + O ctrl + x方法二、指定用户进行修改:sudo crontab -u {username} -e然后添加:@reboot [nohup] {命令}...# 或者定时任务指令保存退出: ctrl...

Arch Linux 安装dwm动态窗口管理器

  dwm网站 http://suckless.org/ 一.新增dml用户以及设定密码 useradd -m -G wheel -s /bin/bash dmlpasswd dml 二.启动dhcpcd dhcpcd 三.安装Vi pacman -S vi 四.设置当前用户取得管理员sudo权限 visudo 查找/wheel命令,删除注释 #%whee...

redis 安装配置(开机启动)

1、安装wget     yum -y install wget 2、下载redis安装包(版本3.0以上) wget http://download.redis.io/releases/redis-3.0.4.tar.gz 3、安装redis    1)解压:tar -zxvf redis-3.0.4.tar.gz    2)进入src目录    3)m...

启动Eclipse时,弹出JVM terminated. Exit code=127..错误的解决方案

在Linux环境下,启动Eclipse,会弹出并报如下的错误,且不能启动该工具 JVM terminated. Exit code=127/eclipse/jdk1.7.0_71/bin/java-Dosgi.requiredJavaVersion=1.6-XX:MaxPermSize=256m-Xms40m-Xmx512m-jar /root/sourc...

ElementUI中的el-table怎样实现每一列显示的是控件并能动态实现双向数据绑定

场景 要实现在ElementUI的表格中每一列展示的不是数据而是控件。效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 普通表格官方示例代码 <template> <el-table :data...