【问题标题】:Error: sudo: a password is required\r\n - although user have permissions on sudoers错误: sudo: 需要密码\r\n - 尽管用户对 sudoers 具有权限
【发布时间】:2020-03-29 13:59:25
【问题描述】:

我正在尝试运行一个显示“主”目录内容的简单 Ansible 剧本。

它运行成功,但是当我使用时:

become_user: "{{ TARGET_USER }}"

我得到错误:

 "sudo: a password is required\r\n"

“Ansible 用户”是“blnapp1”,“目标用户”是“couchbase”

我在 sudoers 文件中添加了“blnapp1”和“couchbase”用户的权限,如下所示:

## Allow root to run any commands anywhere
root    ALL=(ALL) ALL 
blnapp1 ALL=(ALL) NOPASSWD: ALL
blnapp1 ALL=(ALL) ALL
ansible ALL= NOPASSWD: /home/blnapp1/playbook #path to playbook
couchbase ALL=(ALL) NOPASSWD: ALL
couchbase ALL=(ALL) ALL

我还将所有用户的 ssh 公钥添加到 /.ssh/authorized_keys 中

这是我的库存文件:

web1 ansible_host=**** ansible_connection=local

[couchbase-install:children]
couchbase_cluster_nodes
couchbase_server_nodes

[couchbase_cluster_nodes]
primary1 ansible_host=**** ansible_user=blnapp1 TARGET_USER=couchbase couchbase_primary_cluster_node=**** couchbase_cluster_admin_port=*** couchbase_bucket_name=exampleBucket group_server=default

[couchbase_server_nodes]

[all:vars]
#configuration_mode can be vars or cc
configuration_mode=vars
couchbase_data_path="/userdata/data/CB/var/lib/couchbase/data"
couchbase_index_path= "/userdata/data/CB/var/lib/couchbase/data"
yum_path="sudo /bin/yum"
#couchbase_admin="Administrator"
#couchbase_password="Administrator"

这是我的剧本:

---

- name: I-test
  hosts: primary1
  become: true
  become_user: "{{ TARGET_USER }}"

  tasks:
  - debug:
      msg: 'TARGET_USER is: "{{ TARGET_USER }}"'
  - name: show repo content
    shell: 
      cmd: ls -la /home

我发现的唯一方法是将“blnapp1”用户添加到“wheel”组。但是,我真的不希望“blnapp1”拥有“轮”权限..

提前致谢!

【问题讨论】:

    标签: linux permissions ansible couchbase


    【解决方案1】:
    blnapp1 ALL=(ALL) NOPASSWD: ALL
    blnapp1 ALL=(ALL) ALL
    

    这两行基本上说明了完全相同的事情:让blnapp1 像任何人一样启动任何命令。但是第一个告诉sudo 不要要求输入密码,而第二个则不需要。

    在针对debian:buster docker 镜像进行快速测试后,在这种情况下似乎只有最后一行遇到了规则,使得sudo 总是要求输入密码。

    只需删除 sudoers 文件中的第二行。请注意,您的couchbase 用户遇到了完全相同的问题。

    【讨论】:

    • 感谢您的建议。我试过你说的,但仍然得到同样的错误..
    • 您是否使用visudo 编辑了文件?否则 sudo 可能没有捕捉到这些变化......
    • 是的,当然,用 visudo 编辑并确保更改存在。
    • 你可以试试:blnapp1 ALL=(ALL:ALL) NOPASSWD: ALL 吗?
    猜你喜欢
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 2018-07-17
    相关资源
    最近更新 更多