Linux FTP/SSH 权限

Linux FTP/SSH 权限

我不太熟悉如何正确设置权限。目前,我们对服务器上的所有内容都执行 sudo 操作,否则我们就没有权限。我刚刚启动并运行了 FTP,但我没有权限在 wordpress 安装中创建目录。我注意到那里的一切...

-rw-r--r-- 1 root root
drwxr-xr-x 7 root root

我知道我不应该更改 root 文件,但为什么 root 拥有一切?以前在这里并设置这一切的服务器人员已经走了。这是最好的方法吗?还是我们应该有一个“webdev”组或类似的东西?

答案1

您肯定需要一个组来执行此操作。我会配置一个用于 FTP 访问的组。将用户放入您想要用于 FTP 用户的组中,然后我建议执行以下操作(假设 FTP 组称为 FTP,基本数据目录为 /ftpdata - 根据需要更改这些):

chown -R nobody:ftp /ftpdata
find /ftpdata -type f -exec chmod 664 {} \;
find /ftpdata -type d -exec chmod 2775 {} \;

这是您正在做的事情...

chown -R nobody:ftp /ftpdata

这会将 /ftpdata 下每个文件和目录的所有者设置为 nobody,将组设置为 ftp。

find /ftpdata -type f -exec chmod 664 {} \;

此命令将 /ftpdata 下的每个文件设置为模式 664,即对于所有者和组而言是可读写的,对于其他所有人来说是只读的。

find /ftpdata -type d -exec chmod 2775 {} \;

此命令将 /ftpdata 下的每个目录设置为 2775,即对于所有者和组而言是读写和执行的,对于所有人来说是读取和执行的,此外,在这些目录中创建的任何新文件都将归 ftp 组所有。

2775 中的 2 是“设置组 ID” - 每当在设置了该位的目录中创建新文件时,它都会使该文件的组与拥有该目录的组相同。如果没有这个,主要组不是 ftp 组的用户将创建由另一个组拥有的文件,并且该组的其他成员可能无法访问这些文件。

答案2

Root 不应该拥有一切。

创建一个组,将您的 FTP 用户添加到该组中。

为所需的目录和文件赋予适当的权限。此命令将使目录和文件可供所有者和组读取和写入,并可供所有人读取。

chmod -R 764 /the/path/to/files

如果这没有帮助,请 Google 搜索“Unix 文件权限”和/或“chmod”以获取进一步解释。

相关内容