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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch中RNN入门思想及实现

RNN循环神经网络 整体思想: 将整个序列划分成多个时间步,将每一个时间步的信息依次输入模型,同时将模型输出的结果传给下一个时间步,也就是说后面的结果受前面输入的影响。 RNN的实现公式: 个人思路: 首…

小扎不哭!FB又陷数据泄露风波,9000万用户受影响

对小扎来说,又是多灾多难的一个月。 继不久前Twitter曝出修补了一个可能造成数以百万计用户私密消息被共享给第三方开发人员的漏洞,连累Facebook股价跟着短线跳水之后,9月28日,Facebook又双叒叕曝出因安全漏洞遭到黑客攻击&#…

在衡量欧洲的政治意识形态时,调查规模的微小变化可能会很重要

(Related post: On a scale from 1 to 10, how much do the numbers used in survey scales really matter?)(相关文章: 从1到10的量表,调查量表中使用的数字到底有多重要? ) At Pew Research Center, survey questions about respondents’…

Pytorch中CNN入门思想及实现

CNN卷积神经网络 基础概念: 以卷积操作为基础的网络结构,每个卷积核可以看成一个特征提取器。 思想: 每次观察数据的一部分,如图,在整个矩阵中只观察黄色部分33的矩阵,将这【33】矩阵(点乘)权重得到特…

java常用设计模式一:单例模式

1、饿汉式 package singleton.demo;/*** author Administrator* date 2019/01/07*/ public class Singleton {//在调用getInstance方法前,实例已经创建好private static Singleton instance new Singleton();//私有构造,防止被实例化private Singleton(…

SDUT-2121_数据结构实验之链表六:有序链表的建立

数据结构实验之链表六:有序链表的建立 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入N个无序的整数,建立一个有序链表,链表中的结点按照数值非降序排列,输出该有序链表。 Input 第一行输入整数个数N&…

事件映射 消息映射_映射幻影收费站

事件映射 消息映射When I was a child, I had a voracious appetite for books. I was constantly visiting the library and picking new volumes to read, but one I always came back to was The Phantom Tollbooth, written by Norton Juster and illustrated by Jules Fei…

前端代码调试常用

转载于:https://www.cnblogs.com/tabCtrlShift/p/9076752.html

Pytorch中BN层入门思想及实现

批归一化层-BN层(Batch Normalization) 作用及影响: 直接作用:对输入BN层的张量进行数值归一化,使其成为均值为零,方差为一的张量。 带来影响: 1.使得网络更加稳定,结果不容易受到…

JDK源码学习笔记——TreeMap及红黑树

找了几个分析比较到位的,不再重复写了…… Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例 【Java集合源码剖析】TreeMap源码剖析 java源码分析之TreeMap基础篇 关于红黑树: Java数据结构和算法(十一)——红黑树 【数据结…

匿名内部类和匿名类_匿名schanonymous

匿名内部类和匿名类Everybody loves a fad. You can pinpoint someone’s generation better than carbon dating by asking them what their favorite toys and gadgets were as a kid. Tamagotchi and pogs? You were born around 1988, weren’t you? Coleco Electronic Q…

Pytorch框架中SGD&Adam优化器以及BP反向传播入门思想及实现

因为这章内容比较多,分开来叙述,前面先讲理论后面是讲代码。最重要的是代码部分,结合代码去理解思想。 SGD优化器 思想: 根据梯度,控制调整权重的幅度 公式: 权重(新) 权重(旧) - 学习率 梯度 Adam…

朱晔和你聊Spring系列S1E3:Spring咖啡罐里的豆子

标题中的咖啡罐指的是Spring容器,容器里装的当然就是被称作Bean的豆子。本文我们会以一个最基本的例子来熟悉Spring的容器管理和扩展点。阅读PDF版本 为什么要让容器来管理对象? 首先我们来聊聊这个问题,为什么我们要用Spring来管理对象&…

ab实验置信度_为什么您的Ab测试需要置信区间

ab实验置信度by Alos Bissuel, Vincent Grosbois and Benjamin HeymannAlosBissuel,Vincent Grosbois和Benjamin Heymann撰写 The recent media debate on COVID-19 drugs is a unique occasion to discuss why decision making in an uncertain environment is a …

基于Pytorch的NLP入门任务思想及代码实现:判断文本中是否出现指定字

今天学了第一个基于Pytorch框架的NLP任务: 判断文本中是否出现指定字 思路:(注意:这是基于字的算法) 任务:判断文本中是否出现“xyz”,出现其中之一即可 训练部分: 一&#xff…

erlang下lists模块sort(排序)方法源码解析(二)

上接erlang下lists模块sort(排序)方法源码解析(一),到目前为止,list列表已经被分割成N个列表,而且每个列表的元素是有序的(从大到小) 下面我们重点来看看mergel和rmergel模块,因为我…

洛谷P4841 城市规划(多项式求逆)

传送门 这题太珂怕了……如果是我的话完全想不出来…… 题解 1 //minamoto2 #include<iostream>3 #include<cstdio>4 #include<algorithm>5 #define ll long long6 #define swap(x,y) (x^y,y^x,x^y)7 #define mul(x,y) (1ll*(x)*(y)%P)8 #define add(x,y) (x…

支撑阻力指标_使用k表示聚类以创建支撑和阻力

支撑阻力指标Note from Towards Data Science’s editors: While we allow independent authors to publish articles in accordance with our rules and guidelines, we do not endorse each author’s contribution. You should not rely on an author’s works without seek…

高版本(3.9版本)python在anaconda安装opencv库及skimage库(scikit_image库)诸多问题解决办法

今天开始CV方向的学习&#xff0c;然而刚拿到基础代码的时候发现 from skimage.color import rgb2gray 和 import cv2标红&#xff08;这里是因为我已经配置成功了&#xff0c;所以没有红标&#xff09;&#xff0c;我以为是单纯两个库没有下载&#xff0c;去pycharm中下载ski…

python 实现斐波那契数列

# coding:utf8 __author__ blueslidef fun(arg1,arg2,stop):if arg10:print(arg1,arg2)arg3 arg1arg2print(arg3)if arg3<stop:arg3 fun(arg2,arg3,stop)fun(0,1,100)转载于:https://www.cnblogs.com/bluesl/p/9079705.html