windows - Windows : become/become_user permission/owner problems 上的 Ansible

标签 windows ansible file-permissions ansible-2.x

我想执行一些不需要使用管理员帐户的操作。例如,克隆 git 存储库或创建文件夹。

我试过这个:

  - name: Create gogo1 directory
    win_shell: mkdir c:\tmp\gogo1
    become: yes
    become_user: vagrant
    vars:
      ansible_become_pass: vagrant

这会创建所需的目录,但是当我以用户 vagrant 身份登录并尝试删除它时,我得到:

You'll need to provide administrator permission to delete this folder.

用户 Vagrant 没有被授予对文件夹 gogo1 的任何权限。 我还需要这样做:

  - name: Change owner of gogo1
    win_owner:
      path: c:\tmp\gogo1
      user: vagrant
      recurse: yes


使用 win_psexec 可以正常工作。它创建目录,为用户 vagrant 提供权限,因此我可以删除它而不会提示上述消息。

- name: Create gogo2 directory
    win_psexec: 
      command: cmd /k "cd c:\tmp && mkdir gogo && exit"
      username: vagrant
      password: vagrant

我如何使用 becomebecome_user 创建一个文件夹(或者克隆一个 git repo)并给用户所有必要的权限和所有权(比如 win_psexec 可以吗?

最佳答案

为了按照您的意愿工作,您需要它以交互方式登录,以便在创建文件夹时加载用户的配置文件。

为此,您可以尝试将 login_flags(Ansible 2.5+)设置为如下所示:

  - name: Create gogo1 directory
    win_shell: mkdir c:\tmp\gogo1
    become: yes
    become_user: vagrant
    become_flags: logon_type=interactive logon_flags=with_profile
    vars:
      ansible_become_pass: vagrant

您可以在此处阅读有关 become_flags 的所有细节:http://docs.ansible.com/ansible/latest/user_guide/become.html

关于windows - Windows : become/become_user permission/owner problems 上的 Ansible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50100277/

相关文章:

c# - .net - 使用 C# Windows 服务访问 Linux 目录

windows - 在 Windows 中使用 OpenAI API key 时出现问题

jenkins - Jenkins Free style Job 中调用 ansible-playbook 的权限被拒绝消息

docker - 在 Ansible 中转义双花括号

perl - 允许 unix 用户 'postgres' 访问 plperlu 的外部 .pm 文件

linux - 我可以授予 Linux 用户与其他用户完全相同的权限吗?

windows - 将 32 位项目升级到 64 位后启动应用程序失败,错误代码为 0xc000007b

python - 读取名称中包含 "("的 ansible 变量

linux - 将我的访问权限授予所有人?

windows - 在 winXP 上以彩色回显结尾的奇怪字符串(findstr)