• sudo的用法


    为了系统安全我们一般不直接使用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不会生效
  • 相关阅读:
    模板方法模式
    备忘录模式
    观察者模式
    中介者模式
    迭代器模式
    Char型和string型字符串比较整理
    命令模式
    责任链模式
    代理模式
    dokcer 杂谈
  • 原文地址:https://www.cnblogs.com/shansongxian/p/6489183.html
Copyright © 2020-2023  润新知