如何在Windows下设置Linux主机的文件权限?

6
例如,当我将一个文件从 Windows 上传到我的 Linux 主机时,我希望它自动获得 644 权限。在上传之前,该文件在 Windows 下。我应该如何做呢?顺便说一下,我使用 Filezilla 进行上传。
更新:在发布这个问题之前,实际上,我也认为这是不可能的。但是,由于我有许多 WordPress 网站,我记得我从来没有需要为 WordPress 文件设置权限。所以我进行了一个实验:
1.下载一个新的 WordPress 包,格式为 zip(在 Windows 下) 2.将其上传到我的 Linux 主机, 3.解压缩 4.检查这些文件的权限
我看到所有文件的权限都是正确的,有些是 644,有些是 755,正如 WordPress 文档中所描述的那样。

1
请问您能正确使用大写字母吗?对于那些英文阅读不太好的人来说,正确使用 I 会有所帮助。 - S.Lott
抱歉,如果有任何拼写错误,英语不是我的母语。你能告诉我应该在哪里将“i”改为“I”吗?“i”这个单词是否总是需要大写字母? - Edward
5个回答

4
我认为在大多数情况下这是不可能的。
你能否提供更多有关上传方式的信息?FTP、SFTP、SMB?
例如,对于FTP,你可以配置FTP服务器以使所有新文件都具有644 umask(请参见ProFTPd的此示例)。
对于SFTP,客户端可能能够在上传后更改权限,因为它拥有SSH访问权限。

2
关于您的更新:这取决于存档格式。例如,Tar 知道 Linux 文件权限,因此 .tar 或 .tar.gz 存档中的文件可以保留其权限。无论您是通过 FTP 还是在 Windows 机器上存储它,在存档中存储权限都不会受到影响。 - pableu
我下载并上传的WordPress软件包是zip格式的,从未使用过tar或tar.gz格式。 - Edward
继续你的思路,也许是因为WordPress在Linux下构建了他们的zip包?而当我在Windows中压缩文件时,虽然权限被存储,但Linux无法识别Windows权限信息,这似乎是有道理的。 - Edward
是的,那很有道理。我刚在我的Linux工作站上用一个Zip文件进行了测试。确实,在Linux下压缩和解压缩时,Zip文件也会保留权限。而且,是的,Windows和Linux之间的权限不太兼容,所以Linux忽略Zip文件中的任何Windows权限是有道理的。 - pableu

2

你无法更改文件权限。权限不是写在文件本身中,而是写在文件系统中。因此,必须在上传文件后进行更改。


1
我不明白为什么在文件系统中会出现这种情况。使用案例:我在Windows上创建了一个.sh脚本,将其推送到Git,然后在Linux上克隆它。尝试执行:没有机会。尝试chmod +x ../script.sh,强制推送。在另一台Linux机器上进行克隆。尝试执行-成功。 - Alexander.Iljushkin
@Alexander.Iljushkin 我认为在你的情况下,这是因为git充当中间人并知道模式。 OP想要直接上传。请参见https://dev59.com/wVgR5IYBdhLWcg3wtfLX#40979016,了解git如何处理它。 - Mickael V.

0

假设您正在使用FTP上传文件,更好的FTP客户端(FileZilla)将允许您设置权限,如果服务器设置允许FTP客户端进行设置。

至于“默认设置”,644通常已经是文件的默认设置。这也是由服务器设置的。我会假设有一个FTP客户端可以自动为每个文件设置它,但我不确定。如果您想要更改权限,请记住目录是755而不是644,并且可能会让服务器让您删除对文件的访问权限。


0

首先,这些文件属于哪个用户名?上传时您连接的用户名是什么?

该用户的默认umask设置是什么?


0

所以,您可以使用Windows FTP命令“quote”,它允许您向FTP服务器发送任意命令。

假设您的Linux FTP服务器支持SITE UMASK...

例如,ftp> quote SITE UMASK 111

这相当于在Linux命令行上执行 chmod 666 *,但透过FTP在Windows上执行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接