【发布时间】:2012-12-13 12:23:33
【问题描述】:
当在不公开 SSH 访问的共享主机上保护 Drupal 或 WordPress 安装时(糟糕的情况,fwiw),lftp 似乎是批量设置目录和文件权限的正确方法。 find 命令吹嘘你可以重定向它的输出,所以应该能够运行 find,grep exclude 以仅匹配以“/”结尾的行,表示目录,然后将此类匹配的权限设置为 755 并执行相反的操作对文件匹配并设置为 644,然后微调特定文件,例如 settings.php 等。
lftp prompt> find . | grep "/$" | xargs chmod -v 755
不起作用,我确定我未能以正确的顺序和格式链接这些命令。
如何让它工作?
更新:“不工作”我的意思是上面的命令没有输出到控制台,也没有输出到 lftp 错误日志。它不是在本地运行这些命令,fwiw。我将减少命令作为演示:
find . | grep "/$"
将获取“find”的输出并返回匹配项,这里是目录,按字符串匹配的性质:
./daily/
./ffmpeg-installer/
./hourly/
./includes/
./includes/database/
./includes/database/mysql/
./and_so_forth_on_down
这很酷,因为我希望执行 chmod(以及 lftp 的内部命令,支持因 ftp 服务器而异)所以我像这样扩展命令:
find . | grep "/$" | xargs echo
哪些输出——什么都没有。也没有错误输出。从 grep 到 xargs 的管道没有发生。
我的目标是形成以下等价物:
chmod 755 ./daily/
chmod 755 ./ffmpeg-installer/
在 lftp 中,chmod 命令正在执行 ftp-server-permissions 更改,不是本地权限更改。
【问题讨论】:
标签: ftp file-permissions shared-hosting batch-processing lftp