免密sudo,详解“%sudo ALL=(ALL:ALL) NOPASSWD:ALL”【BC Linux测试成功】

艺帆风顺 发布于 2025-04-02 17 次阅读


背景

Ubuntu系统的/etc/sudoers里面会默认有“%sudo ALL=(ALL:ALL)”这个字段,意思为sudo组下的所有用户都能使用sudo权限,前提需要执行用户本身的密码,那如果不想输入执行者的密码也获取sudo权限怎么办呢?那就是配置免密sudo。常用的两种方法:

第一种

    sed -i '/%sudo/c %sudo ALL=(ALL:ALL) NOPASSWD:ALL' /etc/sudoersvisudo -c    #检查语法是否正确,一定要执行,否则出现问题很麻烦

    各字段解释:

      第一段:用户名或者用户组,表示谁有权限来使用后面的配置。%sudo代表sudo组下的所有用户第二段:表示来源地,即从哪执行这条命令。ALL表示所有计算机第三段:表示sudo可以切换到什么用户。ALL表示所有用户第四段:表示sudo可以切换到哪些组下的用户。ALL表示所有组第五段:表示sudo之后能够执行的命令。NOPASSWD:ALL表示执行任意命令都不需要密码

      第二种(CentOS也可以用)

      echo "test ALL=(ALL:ALL)  NOPASSWD:ALL" >> /etc/sudoers

      让test用户可以免密sudo执行所有命令

      给指定命令放开免密sudo权限

      visudo,添加下面的内容

      admin ALL=(ALL) NOPASSWD: /usr/bin/tail,/usr/bin/cat,/bin/vim,/usr/bin/du

        版权声明:本文内容来自CSDN:运维@小兵,遵循CC 4.0 BY-SA版权协议上原文接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。原文链接:https://blog.csdn.net/anqixiang/article/details/105220403如有涉及到侵权,请联系,将立即予以删除处理。在此特别鸣谢原作者的创作。此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。