我正在Fedora 40 机器上安装FosWiki 。 FosWiki 顶级目录应为/home/wikis/foswiki_company
.下面有各种内容目录以及log
目录。
/home
是一个单独的文件系统(不是NFS,只是本地机器上的一个单独的分区)
FosWiki 是一组廉价且令人愉悦的 Perl CGI 脚本,因此它只是通常的 CGI 设置。
事实证明,我什至无法进入FosWiki的设置页面,因为设置脚本无法创建日志文件(即Perl的open()
调用失败)。明显的问题是“文件系统是只读的”。
SELinux 已启用,我正在检查 AVC 拒绝消息。好像没有。
下面是文件系统的相关结构。
- 橙色元素是日志文件应该存放的位置,但事实证明这样做是不可能的。我也尝试过
tmp
子目录,同样的问题。 - 棕色元素是一个实验,我修改了 CGI 脚本,以便将日志文件写入(适当许可的)目录
/home/tmp
,但失败了。 - 绿色元素是一个实验,我修改了 CGI 脚本,以便将日志文件写入(适当许可的)目录
/var/www/tmp
。这有效。
另外,允许httpd访问主目录的SELinux布尔值,通常是关闭的,已经打开了,没有区别,似乎与这个问题无关:
# semanage boolean -l -C
SELinux boolean State Default Description
httpd_can_network_connect (on , on) Allow httpd to can network connect
httpd_enable_homedirs (on , on) Allow httpd to enable homedirs
selinuxuser_execmod (on , on) Allow selinuxuser to execmod
此外,如果我(在 中su - apache
为用户配置 shell 之后),我可以创建或写入任何日志文件。apache
/etc/passwd
所以这是一个与流程相关的事情,而不是与用户相关的事情。
此外,我尝试禁用 SELinux,但遇到了同样的问题。
所以不太可能是SELinux。
我缺少什么?什么可以阻止 Apache httpd 写入/home
文件系统?