用户属性不在主厨配方的bash资源中工作

时间:2015-04-21 14:37:34

标签: ruby bash chef recipe

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

Code-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无法在code-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 start resource ora.cssd -init”grid

CRS-5702:资源'ora.cssd'已在'ip-10-10-10-10'上运行 CRS-4000:命令启动失败,或已完成但有错误。

1 个答案:

答案 0 :(得分:0)

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

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资源示例的情况,您忘记设置该组。