【问题标题】:Setting chmod on all .htaccess files在所有 .htaccess 文件上设置 chmod
【发布时间】:2014-11-05 19:48:39
【问题描述】:

如何找到目录中的所有 .htaccess 文件并将其设置为 chmod 444(出于安全目的)?

【问题讨论】:

    标签: apache .htaccess chmod


    【解决方案1】:

    如果您可以访问 SSH,您可以这样做:

    find . -name .htaccess | xargs chmod 444
    

    这将对您运行命令的当前目录中找到的所有 .htaccess 文件递归执行 chmod

    如果你想指定一个文件夹,你可以这样做:

    find /home/your_account/public_html -name .htaccess | xargs chmod 444
    

    注意

    如果您的路径有空格以避免上述命令错误地应用 CHMOD,请确保正确添加双引号。

    例子:

    find /home/my account/public_html/
    

    使用双引号:

    find "/home/my account/public_html/" -name .htaccess | xargs chmod 444
    

    您还可以在使用命令之前列出文件,以确保它可以满足您的需求,如下所示:

    find . -name .htaccess -print
    

    或者使用文件夹路径:

    find /home/your_account/public_html -name .htaccess -print
    

    例如,如果您在以下位置运行第一个提到的命令:

    /home/your_account/public_html
    

    它将提供来自该文件夹的.htaccess文件以及chmod 444上方的任何其他文件夹,所以:

    /home/your_account/public_html
    /home/your_account/public_html/other_dir
    /home/your_account/public_html/other_dir2
    /home/your_account/public_html/other_dir/other_inner_dir
    

    等等。

    【讨论】:

    • 如果我想把这个命令添加到cron中,我可以手动指定路径吗?
    • @MarkKorzhov 此外,我建议您运行我发布的打印命令,以确保它在设置更新或对文件运行任何命令之前为您提供所需的结果。 find . -name .htaccess -print
    • 我强烈建议任何阅读本文的人反对“chmod 444 .htaccess”这个文件。它对我所做的,是不再允许我写入整个 Web 根目录。这不是 .htaccess 的正确 chmod,我们希望它完全无法从世界(客户端)访问,但可以从网络服务器访问。
    • @JerryCattell 确保您阅读了整个答案如果您需要具有不同权限的文件夹,它将提供该文件夹和 chmod 444 之上的任何其他文件夹中的 .htaccess 文件你可以随时改变它
    猜你喜欢
    • 2014-11-13
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2019-03-20
    • 2017-01-15
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    相关资源
    最近更新 更多