sudoers列表中的错误

3

我一直在尝试使用devstack在CentOS上安装Openstack。 当我运行脚本时,我得到以下错误:

[vagrant@centos64 devstack]$ ./stack.sh 
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<<
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<<
sudo: parse error in /etc/sudoers.d/50_stack_sh near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<<
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<<
sudo: parse error in /etc/sudoers.d/50_stack_sh near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<<
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<<
sudo: parse error in /etc/sudoers.d/50_stack_sh near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<<
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<<
sudo: parse error in /etc/sudoers.d/50_stack_sh near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 1 <<<
sudo: >>> /etc/sudoers.d/50_stack_sh: syntax error near line 2 <<<
sudo: parse error in /etc/sudoers.d/50_stack_sh near line 1
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
RDO repo not detected; installing
++ proxychains /usr/bin/yum.bin install http://rdo.fedorapeople.org/openstack-havana/rdo-release-havana.rpm
ProxyChains-3.1 (http://proxychains.sf.net)
Loaded plugins: fastestmirror
You need to be root to perform this command.
[Call Trace]
./stack.sh:224:die
[ERROR] ./stack.sh:224 Error installing RDO repo, cannot continue

现在,这里有一个名为 /etc/sudoers.d/50_stack_sh 的文件:
[root@centos64 devstack]# cat /etc/sudoers.d/50_stack_sh
 ALL=(root) NOPASSWD:ALL
Defaults: secure_path=/sbin:/usr/sbin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin

我试图编辑它,但是它说这是只读缓冲区,即使对于root用户也是如此。 我试图通过编辑/etc/sudoers文件将vagrant用户添加到sudoers组,但是它产生了相同的错误,因为它是只读缓冲区。 我该如何解决这个错误?


1
你是在虚拟机上运行吗?你是否曾经在Windows上打开过任何文件? - stephenmurdoch
4个回答

3

主要问题是需要一个无需密码的sudo用户才能安装devstack。 尝试运行:devstack/tools/create-stack-user.sh 之后它应该可以工作。


3

回顾一下背景:

  • I have installed CentOS 7 (1503) minimal.
  • As root:

    • I ran the command:

      git clone https://git.openstack.org/openstack-dev/devstack
      
    • I ran the command devstack/tools/create-stack-user.sh: it created a stack user and create the file /etc/sudoers.d/50_stack_sh. But that file has syntax error.

      To fix it, I edit the file /etc/sudoers.d/50_stack_sh to have this content:

      stack ALL=(ALL) NOPASSWD: ALL
      Defaults secure_path=/sbin:/usr/sbin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin
      Defaults !requiretty
      

      To force the saving with VIM, you need to type :w!

希望能有所帮助。

1
我也遇到过这个问题。这不是stack.sh脚本的问题,因为你可以像“stack用户”一样运行“sudo yum update”,它会产生相同的问题。
这是由于/etc/sudoers.d/50_stack_sh文件中的语法错误导致的。你可以以root身份运行以下命令来解决:
echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

我的 stack.sh 现在似乎工作得很好


-1
这是我的解决方法。 我进入/etc/sudoers.d/目录,然后删除50_stack_sh文件。 它有效了,现在你的用户可以正常工作。你可以切换到你想要运行devstack的用户,并运行脚本./stack.sh。 希望能帮到你!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接