目录
Toggle引言:
最近在学shell脚本和一些实用的服务,配置文件存起来不好找索性放到云服务器上,前几天就想着把shell脚本文件和配置文件各自单独放一个页面,在网上找了几款插件感觉用的不是很方便,filebird可以给媒体库新建文件夹,后台看到的页面可以显著地分开图片文件夹和其他文件的文件夹,但是缺点就是他创建的文件夹是虚拟文件夹,网页的html目录中根本没有同名文件夹,也就是说文件的存放位置实际还是在原本wordpress以年月命名的文件夹里,不是很方便我批量上传写好的脚本的诉求
实现方案:
两个插件:
WP文件管理器方便查看网站目录→→functions.php实现简码的创建,style.css实现功能按钮,代码文本的样式,footer.php实现按钮的功能
用插件FIle upload types设置允许上传sh文件,此时文件管理器中可以正常上传/下载.sh文件的操作,但是网页的.sh文件下载按钮失效,原因是网站禁止下载sh这类的可执行文件
这个时候我们应该在保证安全的情况下修改以下文件(目的:给我们关于sh文件的下载权限,但是执行权限必须进制):
1.php.ini→添加allowed_extensions = sh,txt,jpg,png
,允许sh文件;
2.修改nginx/conf/mime.types→添加application/octet-stream sh;
3.nginx.conf→和functions.php一定要配合好
# 文件下载安全规则
location ~* ^/wp-content/uploads/(service_configuration_files|shell_scripts)/.*\.sh$ {
# 安全头设置
add_header Content-Disposition “attachment; filename=$arg_f”; # 通过URL参数动态指定文件名
add_header X-Content-Type-Options “nosniff”;
## 方案A:放宽Referer校验(推荐)
if ($http_referer !~* (linuxjk.cn|localhost|直接访问)) {
return 403;
}
# 重要:确保无冲突的deny规则
allow all;
}
# 禁止执行所有.sh文件(全局生效)
location ~ \.sh$ {
deny all;
return 403;
}
最后展示一下成果:


直接更改主题文件会导致更新的时候我们的代码丢失,这时就需要创建子主题,在子主题上修改代码,更新父主题不会影响我们设计的style.css,footer.php,functions.php等等,而且之前一直无法修改的按钮位置也生效了
