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

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

经过大量搜索,我还没有找到有关此问题的文档。突然,可能是在软件更新之后(?),cURL 无法建立 SSL 连接,并出现以下错误:

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

使用 strace,我发现它正在尝试打开被拒绝的 SSL 证书:

open("/etc/ssl/certs/3c58f906.0", O_RDONLY|O_LARGEFILE) = -1 EACCES (权限被拒绝)

此证书是一个指向 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 运行。有人知道原因吗?更重要的是,有安全可靠的解决方案吗?

答案1

没有理由认为这个文件不是所有人都可读的。它不是你系统独有的,并且包含在默认安装中:http://packages.ubuntu.com/lucid/all/ca-certificates/filelist

一般来说,我认为 /usr/share/ 下的任何内容都可能是全世界可读的(因为它在“share”下)。

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

答案2

嗯。在我的 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

您的安装似乎有问题,或者之前的管理员由于不明原因更改了所有权/权限。

相关内容