如何创建指向 root 所拥有的、任何用户都可以读取的目录的符号链接?

如何创建指向 root 所拥有的、任何用户都可以读取的目录的符号链接?

我正在尝试使用 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。

不要试图用大锤“解决”权限问题。对这些文件夹的权限是完全没有必要的。

相关内容