首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析sudoers文件中的错误

解析sudoers文件中的错误
EN

Server Fault用户
提问于 2016-07-26 06:29:47
回答 2查看 7.3K关注 0票数 6

我已经创建了一个名为kafka的用户,我试图给它一个sudo访问权限,只运行/etc/init.d/kafka命令。

我通过Ansible向/etc/sudoers.d/kafka添加了以下条目:

kafka ALL = NOPASSWD: /etc/init.d/kafka

但是,这样做完全违背了以下错误:

/etc/sudoers.d/kafka:第1行附近的语法错误-- sudo:在/etc/sudoers.d/kafka中解析第1行附近的错误--:没有找到有效的sudoers源,quitting sudo:无法初始化策略插件

下面是完整的Ansible片段:

代码语言:javascript
复制
- name: Create kafka user's group
  group:
    name: "{{ kafka_group }}"
    state: present

- name: Create kafka user
  user:
    name: "{{ kafka_user }}"
    state: present
    group: "{{ kafka_group }}"
    shell: /bin/bash

- name: Set up password-less sudo for kafka user
  copy:
    content: "{{ kafka_user }} ALL = NOPASSWD: /etc/init.d/{{ kafka_service_name }}"
    dest: "/etc/sudoers.d/{{ kafka_user }}"
    owner: root
    group: root
    mode: 0440

我做错了什么?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2016-07-26 06:53:10

"sudo:解析.中的错误“起源于/etc/sudoers或包含在#include <filename>#includedir <path>指令中的任何文件,可能是由于该文件中最后一个条目上缺少新行所致。

票数 13
EN

Server Fault用户

发布于 2016-07-27 10:12:54

使用copy模块可能不是用Ansible处理/etc/sudoers的最佳选择。

线状模块可以在保存文件之前对文件进行验证。这也是更容易删除线等与该模块。

文档包含一个如何使用它的示例。

代码语言:javascript
复制
- name: Set up password-less sudo for kafka user
  lineinfile: dest=/etc/sudoers state=present regexp='^%{{ kafka_user }} ALL\=' line='%{{ kafka_user }} ALL= NOPASSWD: /etc/init.d/{{ kafka_service_name }}' validate='visudo -cf %s'
票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/791945

复制
相关文章

相似问题

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