![如何创建指向 root 所拥有的、任何用户都可以读取的目录的符号链接?](https://linux22.com/image/1550456/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E6%8C%87%E5%90%91%20root%20%E6%89%80%E6%8B%A5%E6%9C%89%E7%9A%84%E3%80%81%E4%BB%BB%E4%BD%95%E7%94%A8%E6%88%B7%E9%83%BD%E5%8F%AF%E4%BB%A5%E8%AF%BB%E5%8F%96%E7%9A%84%E7%9B%AE%E5%BD%95%E7%9A%84%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%EF%BC%9F.png)
我正在尝试使用 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。
不要试图用大锤“解决”权限问题。写对这些文件夹的权限是完全没有必要的。