用户属性在厨师食谱的 bash 资源中不起作用
User attribute not working in bash resource of chef 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
code-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 片段
中以网格用户身份执行该命令
代码 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
========================
i 运行 使用 root 用户执行上述命令,我没有得到权限被拒绝的问题。
su -c "/u01/app/grid/11.2.0.4/bin/crsctl 启动资源 ora.cssd -init" grid
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
资源示例不是这种情况,你忘记设置组了。
我正在尝试 运行 作为网格用户执行一个命令。
代码 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
code-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 片段
中以网格用户身份执行该命令代码 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
========================
i 运行 使用 root 用户执行上述命令,我没有得到权限被拒绝的问题。
su -c "/u01/app/grid/11.2.0.4/bin/crsctl 启动资源 ora.cssd -init" grid
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
资源示例不是这种情况,你忘记设置组了。