SELinux阻止Samba目录列表

我正在CentOS服务器上运行Samba,并且遇到了一个问题,它允许我连接到服务器并查看共享,但将该共享显示为空目录。 我觉得这个行为很奇怪。

以下是我的smb.conf文件中给出的份额:

[seanm] path = /home/seanm writeable = yes valid users = seanm, root read only = No 

这是我在服务器端看到的:

 [seanm@server ~]$ ls -l -rw-r--r-- 1 seanm seanm 40 Jan 4 13:45 pangram.txt 

但是:

 [seanm@client ~]$ smbclient //server/seanm -U seanm -W WORKGROUP Enter seanm's password: Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.33-3.29.el5_5.1] smb: \> ls . D 0 Fri Jan 7 10:08:55 2011 .. D 0 Fri Jan 7 07:58:31 2011 58994 blocks of size 262144. 50356 blocks available 

此行为在Windows客户端和Linux客户端系统上都存在。 在防火墙closures的情况下防火墙出现这种行为,所以不是这样。 / var / log / messages和/ var / log / secure都没有任何关于Samba的抱怨。 如果我mkdir共享目录中,显示,以及子目录,但文件仍然不会出现。

我怀疑SELinux是一个问题,以防万一,这里是相关的设置。

 [root@server ~]# getsebool -a | grep samba samba_domain_controller --> off samba_enable_home_dirs --> on samba_export_all_ro --> off samba_export_all_rw --> off samba_share_fusefs --> off samba_share_nfs --> off use_samba_home_dirs --> on virt_use_samba --> off 

我在这里做错了什么,我能做些什么来解决它?


编辑:SELinux可能是问题,事实上,当我将SELinux设置为“宽容”或发出setsebool -P samba_export_all_rw on问题setsebool -P samba_export_all_rw on – 两者都不适用于生产环境。 一个目录需要什么types的上下文才能让Samba用户真正从中获取文件? 我认为, 将自己的规则和/或背景放在一个很不理想的位置。

现在问题似乎已经解决了。 这 SELinux; 主目录的上下文没有正确设置。

 [seanm@server /home]$ ls -alZ drwx------ larry stooges system_u:object_r:home_root_t larry drwx------ seanm seanm system_u:object_r:home_root_t seanm 

问题展示。

 [seanm@server /home]$ chcon -hR system_u:object_r:user_home_dir_t /home/seanm [seanm@server /home]$ restorecon -Rv /home/seanm [seanm@server /home]$ ls -alZ drwx------ larry stooges system_u:object_r:home_root_t larry drwx------ seanm seanm system_u:object_r:user_home_dir_t seanm 

问题不是展示给seanm,而是展出larry。

我最好的猜测是这是与Cobbler的东西:'larry'和'seanm'都是在安装过程中与Cobbler创build的,我注意到system_u也不是真正适合他们的上下文,因为这不是用户创build的useradd得到:

 [root@server /home]# useradd selinuxtest [seanm@server /home]$ ls -alZ drwx------ larry stooges system_u:object_r:home_root_t larry drwx------ seanm seanm system_u:object_r:user_home_dir_t seanm drwx------ selinuxtest selinuxtest user_u:object_r:user_home_dir_t setest 

我想是时候通过Cobbler文档来grep了。

你试过了吗 ….

 browseable = yes