ruby - 用户属性在 Chef Recipe 的 bash 资源中不起作用

标签 ruby bash chef-infra recipe

我正在尝试以网格用户身份运行一个命令。

代码 1 不工作。授予权限不可用错误。

code-2 正在运行。什么问题?

代码-1

bash "start ora.cssd" do    
    code <<-EOH
        /u01/app/grid/11.2.0.4/bin/crsctl start resource ora.cssd -init
    EOH
    user "grid"
end

代码2

bash "start ora.cssd" do
    code <<-EOH 
        sudo su - grid -c "/u01/app/grid/11.2.0.4/bin/crsctl start resource ora.cssd -init"
    EOH
end

我无法理解为什么 bash 无法在代码 1 片段中以网格用户身份运行该命令

code-1 片段的确切错误日志:

Recipe: Oracle11G::startGridservices
  * execute[start ora.cssd] action run[2015-04-21T14:31:43+00:00] INFO: Processing execute[start ora.cssd] action run (Oracle11G::startGridservices line 4)

================================================================================
Error executing action `run` on resource 'execute[start ora.cssd]'
================================================================================


Errno::EACCES
-------------
Permission denied - /u01/app/grid/11.2.0.4/bin/crsctl start resource ora.cssd -init

========================

我用 root 用户运行了上面的命令,但我没有遇到权限被拒绝的问题。

su -c "/u01/app/grid/11.2.0.4/bin/crsctl 启动资源ora.cssd -init"网格

CRS-5702:资源“ora.cssd”已在“ip-10-10-10-10”上运行 CRS-4000:命令启动失败,或完成时出现错误。

最佳答案

也许你的问题是你忘记设置组了:

bash "start ora.cssd" do    
    code <<-EOH
        /u01/app/grid/11.2.0.4/bin/crsctl start resource ora.cssd -init
    EOH
    user "grid"
    group "grid"
end

我不确定,但也许 grid 组允许脚本运行,但不是特定的 grid 用户。类似于以下内容:

-rwxr-x--- 1 otheruser grid SOMEDATE /u01/app/grid/11.2.0.4/bin/crsctl

我的意思是,su 会同时更改用户和组。这不是您的 bash 资源示例的情况,您忘记设置组。

关于ruby - 用户属性在 Chef Recipe 的 bash 资源中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29775357/

相关文章:

ruby-on-rails - 如何在页面上显示 acts_as_taggable 标签,Rails 中每个标签下面都有帖子?

bash - 关闭已执行命令的返回消息

php - 如何在 PHP 中将 HAML 模板拆分为不同的部分/包含?

ruby-on-rails - 如何为我的 ActiveRecord 模型编写带有参数的自定义验证方法?

bash - 在/etc/fstab 中挂载一个 Windows 隐藏共享。我如何逃避 $

bash - 如何在 Bash 中拆分字符串?

chef-infra - 无法使用knife命令删除节点属性

sql-server-2012 - 由 chef-client 运行时,DISM/SQL2012 无法访问 Windows 更新

vagrant - Vagrant Chef ,找不到文件夹

json - 处理 JSON 返回的空值