最近我有一个项目是关于与 Amazon EC2 服务器的 ssh 连接。在这个项目中,我被要求创建一个用户,该用户只能对整个服务器(其中的所有文件)具有读取权限。我搜索了如何做到这一点,大多数答案都是使用命令
chown -R
他们提到这个命令更改了文件的所有者,而我不想这样做,所以我所做的(我是Linux新手,我不知道很多事情)是将读取权限添加到使用命令的根文件
chmod 755 /
之后我就无法再连接到服务器了,所以我想这是一个糟糕的举动。我的问题是,是否有一种方法可以在不触及根文件且不更改文件所有权的情况下做到这一点。另外我想问的是,root
无论任务是什么,一般情况下是否不应触摸该文件。
答案1
您可能将用户的.ssh
和设为,使 SSH 认为密钥已被泄露(SSH 要求这些密钥仅对其所有者具有读/写访问权限)。.ssh/authorized_keys
755
在正常系统上,除了 root 之外,没有任何用户具有通用读取权限。一揽子读取权限不是一个好主意(*),请考虑确定真正的需求并仅在需要且相当安全的地方设置访问权限( /var/log
)。即使如此,最好还是避免使目录具有普遍可读性;将特定用户添加到具有读取访问权限的某个组,或者使用 ACL 来微调访问权限。
(*) 示例:通过读取访问权限,某人可以获得您服务器的私钥。这是当您使用 SSH 登录时识别您的服务器的密钥。通过将此密钥复制到另一台服务器,您可能会被诱骗登录假服务器。