Php 如何设置windows下linux主机的文件权限?

Php 如何设置windows下linux主机的文件权限?,php,windows,linux,permissions,file-permissions,Php,Windows,Linux,Permissions,File Permissions,例如,当我将一个文件上载到linux主机时,我希望该文件具有644的自动权限,在上载之前,它在windows下。我怎么能这样做 顺便说一句,我使用Filezilla进行上传 更新:在发布这个问题之前,事实上,我曾经认为这是不可能的。但是,由于我有很多wordpress网站,我记得我永远不需要为wordpress文件设置权限。所以我做了一个实验 下载新的wordpress软件包,zip格式(在windows下) 上传到我的linux主机上 无归档 检查这些文件的权限 我看到所有文件的权限都是自然正

例如,当我将一个文件上载到linux主机时,我希望该文件具有644的自动权限,在上载之前,它在windows下。我怎么能这样做

顺便说一句,我使用Filezilla进行上传

更新:在发布这个问题之前,事实上,我曾经认为这是不可能的。但是,由于我有很多wordpress网站,我记得我永远不需要为wordpress文件设置权限。所以我做了一个实验

  • 下载新的wordpress软件包,zip格式(在windows下)
  • 上传到我的linux主机上
  • 无归档
  • 检查这些文件的权限

  • 我看到所有文件的权限都是自然正确的,大约644个,大约755个,正如wordpress文档中描述的那样,你不能。权限不是写在文件本身中,而是写在文件系统中。因此,在上传文件后必须立即执行此操作。

    我认为在大多数情况下,这是不可能的

    你能提供更多关于如何上传的信息吗?FTP、SFTP、SMB?:-)

    例如,对于FTP,您可以配置FTP服务器,以便为所有新文件提供644 umask(请参阅ProFTPd)


    对于SFTP,客户端可能能够在上传后更改权限,因为它毕竟具有SSH访问权限

    假设您使用FTP上载文件,如果服务器设置为允许FTP客户端设置权限,则更好的FTP客户端(FileZilla)将允许您设置权限


    就“默认设置”而言,644通常是文件的默认设置。这也是由服务器设置的。我假设有一个FTP客户端,它会自动为每个文件设置它,但我不确定。如果您使用权限蒙骗,请记住目录是755,而不是644,并且服务器可能允许您删除自己对该文件的访问权限。

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


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

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

    假设您的Linux FTP服务器支持站点UMASK

    e、 g.ftp>报价站点UMASK 111


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

    请正确使用大写字母好吗?对于那些英语读得不好的人,正确使用
    I
    会有帮助。对不起,拼写错误,英语不是我的母语。你能告诉我在哪里把“i”改成“i”吗?“i”一词是否应始终为大写?关于您的更新:这取决于存档格式。例如,Tar知道linux文件权限,因此.Tar或.Tar.gz存档中的文件可以保留其权限。无论您是通过FTP传输,还是在两者之间的windows计算机上存储,这都无关紧要,因为权限存储在存档中。我下载和上载的wordpress软件包是zip格式的,从未使用过tar或tar.gz,请继续思考,可能是因为wordpress在linux下构建了他们的zip软件包?当我在windows中压缩我的文件时,虽然权限被存储,但linux无法识别windows权限信息,这看起来很有意义。我刚刚在linux工作站上用一个Zip文件测试了它。实际上,Zip文件也保留了权限,至少在linux下压缩和解压缩时是这样。是的,Windows和Linux下的权限不能很好地结合在一起,所以Linux忽略Zip文件中的任何Windows权限是有道理的。用例:我在windows中创建了.sh脚本。推到git。在linux上克隆了它。试图执行:没有机会。给定chmod+x../script.sh,强制推送。在另一台linux机器上克隆。试图执行-profit.@Alexander.Iljushkin我认为在您的案例中,它来自于git充当中间人并了解模式的事实。OP想要直接上传。有关git如何处理它的信息,请参见