Ubuntu 10.04.4 LTS – cURL SSL证书权限被拒绝

经过广泛的search,我还没有发现这个问题的文件。 突然,可能在软件更新(?)之后,cURL无法build立与此错误的SSL连接:

curl: (35) error:0200100D:system library:fopen:Permission denied 

用strace,我发现它试图打开被拒绝的SSL证书:

open(“/ etc / ssl / certs / 3c58f906.0”,O_RDONLY | O_LARGEFILE)= -1 EACCES(Permission denied)

这个证书是一个符号链接,它指向AddTrust_External_Root.pem,它又是/usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt的符号链接。 权限确实是我的用户不允许访问它:

 ls -l /usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt -rw-r----- 1 root ssl-cert 1521 2011-09-01 18:48 /usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt 

为什么这个文件不是世界可读的,这可能是有原因的,但是它阻止了cURL的运行。 有没有人知道原因,更重要的是,一个安全可靠的解决scheme?

没有理由这个文件不是世界可读的。 这不是什么独特的系统,并包含在默认的安装: http : //packages.ubuntu.com/lucid/all/ca-certificates/filelist

一般来说,我认为/ usr / share /下的任何东西都可能是世界可读的(因为它在“共享”之下)。

现在,为什么这个文件不是世界上可读的系统是真正的问题。 可能是一个错误。

嗯。 这是我的Lucid安装的世界可读性:

 $ ls -l /usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt -rw-r--r-- 1 root root 1521 2011-09-01 16:48 /usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt 

您的安装似乎有问题,或者以前的pipe理员因为不明原因而更改了所有权/权限。