我正在使用 CentOS 6.3 设置 Linux 作为文件服务器。
由于我想要磁盘配额并且无法安装 LVM(它是 32 位机器),因此我使用安装有 ext4 的 LVM 卷/samba/seg
我创建了/samba/seg
,分配了一个域组,将FS权限更改为770,执行:
semanage fcontext -a -t samba_share_t /samba/seg
restorecon -R -v /samba/seg
我的配置(来自testparm
):
[seg]
comment = Remote unit
path = /samba/seg
valid users = @DOMAIN\GROUP
read only = No
create mask = 0660
force create mode = 0660
directory mask = 0770
force directory mode = 0770
hide unreadable = Yes
access based share enum = Yes
当我尝试从 Windows 机器(以域用户身份登录)进行连接时,我收到一条消息,指出我没有共享的访问权限。我必须进行setenforce Permissive
才能访问共享。
域配置看起来没问题。我可以使用域用户登录,检查域组的用户等等。
另一方面,我只是创建了一个目录(而不是文件系统)/samba/test
并用它回复了步骤;它工作没有问题,所以问题似乎是在共享已安装的文件系统时。
有什么建议么?
答案1
好吧,我的错。我不断地重复这个过程,并调查说明的作用。
当查看semanage
find时ls -Z
,我发现 samba_share_t 权限/对象/任何内容都没有粘在已安装的文件系统上。
我所做的是更改fstab
添加安装选项,现在它显示
/dev/mapper/VolGroup-lv_seg /samba/seg ext4 context="system_u:object_r:samba_share_t:s0" 1 2
这就成功了。
答案2
semanage fcontext -a -t samba_share_t /samba/seg
将上面的命令替换为以下命令:
semanage fcontext -a -t samba_share_t /samba/seg(/.*)?
例如,参见程序 5.8。更改目录及其内容类型”位于https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/security-enhanced_linux/sect-security-enhanced_linux-selinux_contexts_labeling_files-persistent_changes_semanage_fcontext