为了系统安全我们一般不直接使用root用户进行日常维护,sudo是临时提升root权限,有时执行一些命令或者更新没权限的文件时需要使用root,这个时候就需要sudo上场了

普通用户是没有sudo使用权的,需要root管理员添加才行

sudo

root ALL=(ALL) ALL
参数说明:
第一个ALL:指网络中的主机
第二个ALL:指目标用户,也就是以谁的身份去执行命令
第三个ALL:指命令名,可以执行所有命令 例:让jspear用户在本地主机上以admin的身份执行kill命令
jspear localhost=(admin) /bin/kill 如果多个用户可以使用组功能,%代表这个是组,NOPASSWD是免输入密码
%wheel ALL=(ALL) NOPASSWD: ALL #取消注释
usermod -a -G wheel jspear #添加用户jspear到组wheel,使用id查看用户所属组 需要再添加新用户使用sudo只需要继续执行usermod,不用修改visudo文件
#centos7默认已经开放%wheel这一行,之前的centos版本没有启用 添加到wheel组的用户都能够利用root身份进行任何操作,可以自定义限制用户执行的指令
[root@localhost ~]# visudo
jspear ALL=(root) /usr/bin/passwd <=命令需要使用绝对路径
这样其实是有个很大漏洞的,可以直接sudo passwd修改root密码,需要再做下限制
[jspear@localhost ~]$ sudo passwd
Changing password for user root.
New password: [root@localhost ~]# visudo
jspear ALL=(root) NOPASSWD:ALL,!/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su
ALL允许所有命令,!代表不执行,上面意思是允许执行所有,passwd后加任意字符可以执行,但passwd与passwd root这两个命令除外,如此jspear用户就无法改变root密码了,并且禁止sudo su 如果我有多个用户需要加入上面管理员行列,除了一个人添加有没有简单方法呢,哈哈,有的,使用别名
另外可以是【命令别名、账号别名、主机别名】
[root@localhost ~]# visudo
User_Alias ADMIN = jspear,admin,user1,user2
Cmnd_Alias ADMINCOM = !/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/usr/sbin/useradd,!/usr/sbin/userdel,!/usr/sbin/visudo,!/bin/su
ADMIN ALL=(root) NOPASSWD:ALL,ADMINCOM
注意:User_Alias、Cmnd_Alias、Host_Alias这些是系统规定的,必须这样的形式写法
当需要添加用户或者添加限制只需要修改User_Alias、Cmnd_Alias这两行即可 sudo的时间间隔问题:默认两次执行sudo的间隔在5分钟内,五分钟内执行sudo是不需要再次输入密码的 sudo搭配su直接转换为root
[root@localhost ~]# visudo
User_Alias ADMIN = jspear,admin,user1,user2
ADMIN ALL=(root) /bin/su - admin@localhost ~]$ sudo su - #使用Admin用户sudo su -输入admin密码可以直接进入root权限 We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things: #1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility. [sudo] password for admin:
[root@localhost ~]# sudo用法可以查看鸟哥写的博客:http://linux.vbird.org/linux_basic/0410accountmanager.php#sudo 提示:centos 7由于默认将%wheel ALL=(ALL) ALL开启,需要将这行注释,否则NOPASSWD不会生效

sudo的用法的更多相关文章

  1. linux 下su 和sudo 的用法以及区别

    一. 使用 su 命令临时切换用户身份 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用 ...

  2. Linux中sudo的用法

    一.用户在/etc/sudoers文件中的写法语法规则:授权用户 主机=命令动作 这三个要素缺一不可,但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用括号括起来,如果不需要密码直接运行 ...

  3. linux sudo apt-get用法详解

    APT的使用(Ubuntu Linux软件包管理工具一)apt-cache search # ------(package 搜索包)apt-cache show #------(package 获取包 ...

  4. Linux中su和sudo的用法整理

    一.为什么会有su和sudo命令? 主要是因为在实际工作当中需要在Linux不同用户之间进行切换.root用户权限最高很多时候需要root用户才能执行一些关键命令.所以需要临时切换为root用户.工作 ...

  5. Linux系统中切换用户身份su与sudo的用法与实例

    日常操作中为了避免一些误操作,更加安全地管理系统,通常使用的用户身份都为普通用户,而非root.当需要执行一些管理员命令操作时,再切换成root用户身份去执行. 普通用户切换到root用户的方式有:s ...

  6. Linux中su和sudo的用法

    su -#su - oldboy //当执行这个命令的时候表示切换到oldboy用户,并且重新读取用户环境相关配置文件,具体的来说就是执行下用户家目录下.bash_profile和.bashrc文件, ...

  7. sudo用法

    sudo的用法    xxx is not in the sudoers file.This incident will be reported.的解决方法   1.切换到root用户下,怎么切换就不 ...

  8. linux su和sudo命令的区别

    一. 使用 su 命令临时切换用户身份 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用 ...

  9. sudo su权限案例

    一 控制sudo: 允许执行所有命令,排除某几个命令(带参数) lanny ALL=(ALL) NOPASSWD:ALL, !/bin/su - root, !/usr/sbin/visudo 如果需 ...

随机推荐

  1. Python的subprocess子进程和管道进行交互

    在很久以前,我写了一个系列,Python和C和C++的交互,如下 http://blog.csdn.net/marising/archive/2008/08/28/2845339.aspx 目的是解决 ...

  2. C++ std::pair

    pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair. ...

  3. 《Java多线程编程核心技术》读后感(十四)

    单例模式与多线程 立即加载/饿汉模式 立即加载就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接new实例化. 立即加载/饿汉模式实在调用方法前,实例已经被创建了 package Six; p ...

  4. PKI标准、CA采取的规范、X509、PKCS

    PKI:Public Key Infrastructure 公钥基础设施 PKI标准可以分为第一代和第二代标准. 第一代PKI标准主要包括美国RSA公司的公钥加密标准(Public Key Crypt ...

  5. SpringMVC使用fastjson自定义Converter支持返回jsonp格式(转)

    import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import c ...

  6. PHP正则表达式,看这一篇就够啦!

    前言 不知道你们有没有这个感觉,看正则表达式就像看天文数字一样,什么电话号码.邮箱的正则表达式,上网复制一下粘贴下来就搞定了.完全不知道这写的是什么玩意.后来我自己也想学一下,因为感觉用处还是挺大的. ...

  7. uoj#311. 【UNR #2】积劳成疾(期望dp)

    传送门 果然\(dp\)题就没咱啥事儿了 设\(f_{i,j}\)为长度为\(i\)的区间,所有元素的值不超过\(j\)的总的疲劳值 如果\(j\)没有出现过,那么\(f_{i,j}=f_{i,j-1 ...

  8. 1366 - Incorrect string value:'\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' a 错误修改

    把name的字符集修改成 utf8 ,然后把表关了从新打开,就可以了 如果还不行,就从新创表,在创表的时候修改name的字符集 如果还不行,就修改my.ini 它在你的mysql安装路径里 [mysq ...

  9. PAT甲级——1107 Social Clusters (并查集)

    本文同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90409731 1107 Social Clusters (30  ...

  10. exportExcel()方法注意事项

    1.保证数据集里的字段和SQL语句里字段全部一致,包括sql语句里必须有系统字段 2.exportExcel()执行的时候,是先去执行SQL语句,再去到数据集里面进行不对,若有不一致的地方,则报列名无 ...