美文网首页
sudo命令使用方法

sudo命令使用方法

作者: 一个小运维 | 来源:发表于2021-05-24 08:26 被阅读0次

    准备任意 1 台虚拟机:
    使用 root 给虚拟机创建普通账户 alice,设置密码为 654321

    useradd alice
    echo 654321 | passwd --stdin alice

    提问:

    1. 使用 alice 用户登录系统可以安装软件包吗?
    2. 使用 alice 用户登录系统可以创建用户吗?
    3. 使用 alice 用户登录系统可以启动、关闭服务吗?
      答案:
      (管理员 root 使用 su - alice 切换用户测试一下便可知晓)

    su - alice
    $ systemctl restart crond #重启计划任务服务会失败
    $ useradd xiaoyuan #创建用户会失败
    $ yum -y reinstall vim #重装 vim 会失败

    那么问题来了,如何让普通用户也可以做管理员的操作呢?
    实验验证真理(序曲):

    1. 管理员 root 修改/etc/sudoers 文件,注意是管理员 root 操作:

    # vim /etc/sudoers #打开这个文件,在文件最后一行手动添加如下一行内容
    alice web1=(root) ALL #让 alice 用户组 web1 这台电脑上可以以 root 的身份执行所有命令
    :wq! #该文件为只读文件,需要 root 强制保存退出

    1. 普通用户 alice 再次测试一下,看看能不能装包、启服务、建用户

    # su - alice #先切换为普通用户 alice
    $ useradd xiaoyuan #创建用户会失败
    $ systemctl restart crond #重启服务会失败

    什么情况?修改刚才的神奇文件(sudoers)没用吗? 等等... ...

    $ sudo useradd xiaoyuan #会提示输入 alice 的密码,正确输入 alice 密码后成功
    $ sudo restart crond #成功
    $ exit #退出普通用户,回到 root

    结论:正常执行命令就是以普通用户的身份执行命令,sudo 后面加命令就是以 root 身份执行命令晋级操作:
    管理员 root 再次修改/etc/sudoers 文件,将之前添加的一行内容适当修改如下:

    # vim /etc/sudoers
    alice web1=(root) NOPASSWD: ALL
    :wq! #该文件为只读文件,需要 root 强制保存退出

    普通用户 alice 再次测试一下:

    # su - alice #先切换为普通用户 alice
    $ sudo useradd xiaoyi #不用输入任何密码就可以创建账户
    $ sudo -i

    #普通用户不需要任何密码,直接切换为 root
    结论:su 可以切换用户,sudo 也可以切换用户!

    普通用户 sudo -i 切换 root 后就可以为所欲为,但是,前提条件是管理员需要修改 sudoers 文件,允许你这么干!!
    附加尝试:

    1. 管理员 root 再次修改/etc/sudoers 文件,将之前添加的一行内容适当修改如下:

    # vim /etc/sudoers
    alice client=(root) NOPASSWD: ALL
    :wq! #该文件为只读文件,需要 root 强制保存退出

    假设你是在 web1 主机上做实验,主机名叫 web1,这里故意将 sudoers 配置文件第二列改的和主机名不一致!
    看看 alice 是否还可以为所欲为呢?

    1. 管理员 root 再次修改/etc/sudoers 文件,将之前添加的一行内容适当修改如下:

    # vim /etc/sudoers
    alice ALL=(root) NOPASSWD: ALL
    :wq! #该文件为只读文件,需要 root 强制保存退出

    假设你是在 web1 主机上做实验,主机名叫 web1,这里故意将 sudoers 配置文件第二列改为 ALL!

    看看 alice 是否还可以为所欲为呢?

    1. 管理员 root 再次修改/etc/sudoers 文件,将之前添加的一行内容适当修改如下:

    # vim /etc/sudoers

    alice ALL=(ALL) NOPASSWD: ALL
    :wq! #该文件为只读文件,需要 root 强制保存退出

    这里故意将 sudoers 配置文件第二列和第三列改为 ALL!看看 alice 是否还可以为所欲为呢?
    总结语法:用户主机名=(提权的用户) NOPASSWD: 命令
    授权什么人,在什么主机,以什么人的身份,执行什么命令

    相关文章

      网友评论

          本文标题:sudo命令使用方法

          本文链接:https://www.haomeiwen.com/subject/noeyjltx.html