我写了一个简单的食谱来创建文件如下:
file '/myfile' do
content 'Welcome to Technical Guftgu'
action :create
end
字符串
但是在chef-client -zr“recipe[test::recipe 1]”上,我得到以下错误:
[2022-03-08T10:54:16+00:00] ERROR: Running exception handlers
Running handlers complete
[2022-03-08T10:54:16+00:00] ERROR: Exception handlers complete
Chef Infra Client failed. 0 resources updated in 02 seconds
[2022-03-08T10:54:16+00:00] FATAL: Stacktrace dumped to /home/vagrant/.chef/local-mode-cache/cache/chef-stacktrace.out
[2022-03-08T10:54:16+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2022-03-08T10:54:16+00:00] FATAL: Errno::EACCES: file[/myfile] (test::recipe1 line 7) had an error: Errno::EACCES: Permission denied @ rb_sysopen - /myfile
型
3条答案
按热度按时间siotufzp1#
您的应用似乎无法访问文件
/myfile
。尝试以下操作,以允许访问所有:
sudo chmod a+rw /myfile
个p8ekf7hl2#
看起来你不是以root用户的身份执行这个命令,通过输入sudo su将其更改为root,然后重新运行命令,希望这会有所帮助。
我也面临着同样的问题,坚持了一个小时,就这么做了,并成功了。
szqfcxe23#
Errno::EACCES表示“权限被拒绝”
Errno类在运行时Map到系统调用错误。你可以在以下文件中找到(令人困惑的):
特别是:
字符串
在大多数 *nix系统中Errno::EACCESMap到libc error code,表示“许可被拒绝”。具体而言:
型
这通常意味着你的#create操作没有读取、写入或遍历你试图管理的文件路径的权限,所以你需要更改你的实现(你在原始文章中没有显示),以确保你的Ruby进程拥有执行所需的文件或文件系统权限。
另见
errno.h
来自The Open Group Base Specifications Issue 7, 2018 edition