我正在尝试使用 CertBot 设置一个独立的安全证书,并./public/certbot
从我的服务器创建一个符号链接 ( ),这样我就可以包含证书,而无需它们实际位于服务器的目录树下(这是我用于测试和开发的 Linode,因此我将使用各种服务器软件)。证书已成功安装在 下/etc/letsencrypt/
,并按照CertBot 文档,安装是使用 完成的sudo
,因此所有文件都归 root 所有。我尝试了能想到的所有方法来创建服务器可以读取的符号链接,但我一直收到权限错误。目前,符号链接文件、/etc/letsencrypt/live
域文件夹以及域文件夹内的所有文件都已sudo chmod
分配给777
,并且我尝试在没有 的情况下创建符号链接文件sudo
,但是它不让我这样做。作为普通用户,我能够在没有 的情况下cd
进入符号链接文件和ls
域文件夹sudo
,因此我可以看到其中的所有内容,但是当我启动服务器(当前webpack-dev-server
)时,它没有权限。来自服务器的错误消息表明路径正在正确解析(因为它给了我访问错误,而不是ENOENT
)。
我也尝试创建一个真实public/certbot
文件夹和指向证书文件的单独符号链接,但出现了同样的错误。
我对 Linux 权限的了解肯定存在一些差距。有办法解决这个问题吗?谢谢。
答案1
这样我就可以包含证书,而不必将它们实际放在服务器的目录树下
大多数软件没有这个要求首先,可以直接从“/etc/letsencrypt/live”访问证书。
无论你当前的问题是由文件权限还是 chrooting 引起的,这个符号链接都无济于事根本。如果您有足够的权限通过符号链接到 /etc/letsencrypt/live/foo/privkey.pem,那么您也有足够的权限直接访问同一个文件。
目前,符号链接文件……
“符号链接文件”的权限无关紧要,您无法在 Linux 上更改它们。它们始终被报告为“lrwxrwxrwx”,但只有目标文件本身才是重要的,而不是指向它的符号链接。
… /etc/letsencrypt/live、域文件夹以及域文件夹内的所有文件……
查看 下的那些文件/etc/letsencrypt/live
;注意它们本身是指向另一个目录的符号链接。archive
该目录默认情况下也不是所有人都可读的。
用于namei -l ./public/certbot/example.com/privkey.pem
快速查看路径中的每个组件(包括符号链接解析)及其权限。
…已通过 sudo chmod 升级至 777。
不要试图用大锤“解决”权限问题。写对这些文件夹的权限是完全没有必要的。