当我尝试挂载只读 samba 共享时,我在 samba 服务器上收到此消息(客户端超时)
Nov 5 18:45:49 localhost kernel: type=1400 audit(1352137549.469:17): avc: denied { module_request } for pid=3046 comm="smbd" kmod="net-pf-10" scontext=unconfined_u:system_r:smbd_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=system
我已经尝试过:
setsebool -P samba_export_all_ro 1
getsebool -a | egrep -i 'smb|samba'
yum install policycoreutils-python
semanage fcontext -a -t samba_share_t '/PATH/TO/SAMBASHARE(/.*)?'
restorecon -R /PATH/TO/SAMBASHARE
/etc/init.d/smb restart
如何配置 SELinux 以允许只读 samba 共享?关闭 SELinux 简直是愚蠢之举。
更新:
[root@SERVER ~]# getsebool -a|grep -i smbd
allow_smbd_anon_write --> off
[root@SERVER ~]# setsebool -P smbd_disable_trans 1
libsemanage.dbase_llist_set: record not found in the database
libsemanage.dbase_llist_set: could not set record value
Could not change boolean smbd_disable_trans
Could not change policy booleans
答案1
看来 smbd 正在尝试自动加载内核模块net-pf-10
,该模块是ipv6
.这显然在 SELinux 中是不允许的,因为没有合理地预期该模块不会被加载(或者您会要求在禁用 IPv6 的情况下进行 IPv6 绑定)。
至少有两种可能的方法来解决这个问题。
- 在系统范围内重新启用 IPv6(因为几乎可以肯定您已禁用它;这只是禁用 IPv6 会导致的众多问题之一)。
重新配置 Samba,使其不尝试绑定到任何 IPv6 地址。更改
interfaces
线路smb.conf
以仅绑定到您所需的 IPv4 地址。一个例子:interfaces = 127.0.0.1 198.51.100.87 bind interfaces only = yes