You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含PHP/JS/CSS/PDF的目录递归加入fapolicyd白名单?

如何用fapolicyd将特定目录及指定文件类型加入白名单

可以将包含PHP、JS、CSS和PDF文件的整个目录结构加入fapolicyd白名单,以下是针对你遇到的SFTP上传拦截问题的具体解决方案:

问题分析

从调试日志:

rule=11 dec=deny_audit perm=open auid=1000 pid=3005001 exe=/usr/libexec/openssh/sftp-server : path=/data/www/nbsprod/public_html/fax.php ftype=text/x-php trust=0

可知,sftp-server尝试访问的PHP文件未被fapolicyd标记为可信(trust=0),被编号11的拒绝规则拦截。切换到宽容模式后允许上传,说明是规则拦截导致的问题。

解决方案步骤

1. 添加目录及文件类型到信任源

fapolicyd通过信任源管理可信文件,创建自定义信任配置文件:

vi /etc/fapolicyd/trust.d/00-www-trust.conf

写入以下规则(匹配目录下指定类型的文件并标记为可信):

# 信任/data/www目录下的PHP、JS、CSS、PDF文件
dir=/data/www/ ftype=text/x-php trust=1
dir=/data/www/ ftype=application/javascript trust=1
dir=/data/www/ ftype=text/css trust=1
dir=/data/www/ ftype=application/pdf trust=1

提示:可以用file --mime-type /path/to/file.php命令确认文件的MIME类型,确保和ftype值一致。

2. 更新信任数据库

配置完成后,更新fapolicyd的信任缓存:

fapolicyd-cli --update

3. 调整访问规则(若信任源配置仍无效)

如果添加信任源后还是被拦截,需要创建优先级更高的允许规则(规则编号小于11):

vi /etc/fapolicyd/rules.d/10-allow-sftp-www.conf

写入允许sftp-server访问目标目录指定文件类型的规则:

allow perm=open exe=/usr/libexec/openssh/sftp-server dir=/data/www/ ftype=text/x-php
allow perm=open exe=/usr/libexec/openssh/sftp-server dir=/data/www/ ftype=application/javascript
allow perm=open exe=/usr/libexec/openssh/sftp-server dir=/data/www/ ftype=text/css
allow perm=open exe=/usr/libexec/openssh/sftp-server dir=/data/www/ ftype=application/pdf

4. 重启fapolicyd服务

systemctl restart fapolicyd

5. 验证效果

重新执行SFTP上传操作,或再次用调试模式确认拦截是否消失:

fapolicyd --debug-deny 2> fapolicy-test.output &
# 执行上传后查看日志
cat fapolicy-test.output

内容的提问来源于stack exchange,提问作者a coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:52:20