我正在尝试通过 ftp 更改我的网站,但当我保存任何文件时,它会将权限和所有者更改为我的用户名。我可以通过 samba 编辑同一文件夹中的文件,而无需更改权限。我真的不明白/var/www
文件夹的权限是如何工作的,我正绞尽脑汁试图让它工作。我最近更改了目录的权限/var/www
(以下本指南),这样我就可以修改 www 根目录中的文件。现在我拥有/var/www
设置为的全部内容-rwxrwxr-x 1 www-data www-data
,但当我通过 ftp 更改文件时,它变为-rw------- 1 akbkuku akbkuku
,akbkuku 是我的用户名。我使用 vsftpd 作为服务器,并使用我的普通用户登录。
我如何让它保留权限?
此时,我甚至会采取一种方法将所有权限重置为正常状态,并且我永远不会修改 Web 根目录中的文件。
答案1
设置取决于您使用的 FTP 客户端。某种程度上也取决于您连接的 FTP 服务器。
通常,从 ftp 命令行,您可以
- 设置会话的 umask,或者
- 更改您所拥有的文件/目录的权限。
如果您想确保网站可以看到您的文件,请确保它们是全球可读的(并且目录已设置 RX 位)。
答案2
这可能是 vsftpd 配置问题。如果您收到-rw-------
,则可能是选项file_open_mode
设置为 0600 或local_umask
060。来自man vsftpd.conf
:
文件打开模式
上传文件创建时的权限。umask 应用于此值之上。如果您希望上传的文件可执行,则可能需要更改为 0777。
默认值: 0666
本地掩码
为本地用户设置的文件创建的 umask 值。
默认值: 077
如果您愿意-rw-rw-r--
,您可以尝试更改其中一个或两个选项/etc/vsftpd.conf
:file_open_mode=0660
,local_umask=066
。
请记住,此更改是服务器范围的。所有上传的文件(即使/var/www
它不是唯一可访问的目录之外的文件)都将获得 660 权限,这可能不是您想要的。