首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在sudo编辑授予的文件上使用不可用的模板/副本

是否可以在sudo编辑授予的文件上使用不可用的模板/副本
EN

Stack Overflow用户
提问于 2019-12-12 19:36:46
回答 2查看 660关注 0票数 0

我喜欢在ansible中使用template (或copy)函数,如下所示:

代码语言:javascript
复制
- name: Template a file to /etc/files.conf
  template:
    src: /mytemplates/foo.j2
    dest: /etc/file.conf

问题是,我没有远程文件/etc/file.conf的直接写权限,我只能通过sudoedit修改它

是否可以通过template命令管道通过sudoedit修改或复制这样的文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-08 08:59:36

事实上,我找到了一个解决办法:

代码语言:javascript
复制
# sudoedit.yml

---

- name: Create temp file 
  tempfile:
    suffix: ".{{ sudoedit.suffix }}"
  register: tempfile
  check_mode: no
  changed_when: false

- name: "Check if {{ sudoedit.suffix }} exists"
  stat:
    path: "{{ sudoedit.dest }}"
  register: dest

- name: "Copy content of {{ sudoedit.suffix }} into temp file"
  copy:
    src: "{{ sudoedit.dest }}"
    dest: "{{ tempfile.path }}"
    remote_src: yes
  diff: no
  check_mode: no
  changed_when: false
  when: dest.stat.exists

- name: "Copy file {{ sudoedit.suffix }}"
  copy:
    src : "{{ sudoedit.src }}"
    dest: "{{ tempfile.path }}"
  register: sudoresult

- name: "Modify file {{ sudoedit.suffix }} with sudoedit"
  shell: 
    cmd: sudoedit -n "{{ sudoedit.dest }}"
    stdin: ":%d|:r {{ tempfile.path }}|:1d|:wq"
    executable: /bin/bash
  environment:
    SUDO_EDITOR: /usr/bin/vi
  when: sudoresult.changed
  changed_when: false

- name: Delete the temp file
  file:
    path: "{{ tempfile.path }}"
    state: absent
  changed_when: false
  when: tempfile.path is defined

...

然后像这样使用它:

代码语言:javascript
复制
- name: Set NFS exports
  include_tasks: sudoedit.yml
  vars:
    sudoedit:
      src: source/etc/exports
      dest: /etc/exports
      suffix: exports
票数 1
EN

Stack Overflow用户

发布于 2019-12-12 20:01:25

问:“是否可以在授权的文件上使用ansible template/copy ?我只能通过sudo编辑修改它。是否可以通过sudo编辑和修改或复制文件来引导模板命令?”

答:没有。这不可能。特权提升必须是通用的。对受限制的文件使用templatecopy或任何其他不可用模块,但commandshell和类似的模块除外,它们可以使用sudoedit命令。

“不能将权限提升权限限制在某些命令上.”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59311616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档