使用 Ansible“lineinfile”模块编辑 /etc/sudoers 是否安全?

2024-03-22

我想根据以下内容更改 sudo 会话超时this https://superuser.com/a/149740/775166回答。我可以编辑普通文件:

lineinfile:
  path: /etc/sudoers
  regexp: ^Defaults  env_reset
  line: Defaults  env_reset,timestamp_timeout=60

但在我的第一行/etc/sudoers书面:# This file MUST be edited with the 'visudo' command as root.怎么处理呢?
P.S.
尽管简短的答案是肯定的,但人们必须阅读康斯坦丁·苏沃洛夫 回答 https://stackoverflow.com/a/46723428/4249707关于正确的做法lineinfile并且非常有趣技术拉夫答案 https://stackoverflow.com/a/46720791/4249707关于这种方式可能存在的陷阱


对于这种情况,有一个安全网选项:validate.

复制到位之前要运行的验证命令。要验证的文件的路径通过“%s”传入,该路径必须存在,如下例所示。该命令是安全传递的,因此扩展和管道等 shell 功能将不起作用。

如果您查看示例部分文件行 https://docs.ansible.com/ansible/latest/collections/ansible/builtin/lineinfile_module.html#examples模块,您将准确地看到您需要的内容:

# Validate the sudoers file before saving
- lineinfile:
    path: /etc/sudoers
    state: present
    regexp: '^%ADMIN ALL='
    line: '%ADMIN ALL=(ALL) NOPASSWD: ALL'
    validate: '/usr/sbin/visudo -cf %s'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Ansible“lineinfile”模块编辑 /etc/sudoers 是否安全? 的相关文章

随机推荐