Samba共享后不能访问是selinux惹的祸



第一种方法:关闭SELinux,并修改配置文件,使系统启动时不启动SELinux。linux



不关机的关闭方法是:setenforce 0缓存


永久关闭是:安全

vi /etc/sysconfig/selinux服务器


# This file controls the state of SELinux on the system.网络

# SELINUX= can take one of these three values:dom

# enforcing - SELinux security policy is enforced.socket

# permissive - SELinux prints warnings instead of enforcing.ide

# disabled - SELinux is fully disabled.工具

SELINUX=enforcingui


# SELINUXTYPE= type of policy in use. Possible values are:

# targeted - Only targeted network daemons are protected.

# strict - Full SELinux protection.

SELINUXTYPE=targeted


把 SELINUX设定为disable, 下次启动系统后将会中止SElinux。



还有一种是;

在核心参数后加上 selinux=0 (中止) 或 selinux=1 (开启)参数


vi /boot/grub/menu.lst


title Fedora Core (2.6.18-1.2798.fc6)

root (hd0,0)

kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet selinux=0

initrd /initrd-2.6.18-1.2798.fc6.img



检查SELinux现时况态的命令是; getenforce





第二种方法 :不关闭SELinux配置 samba的方法 (在51cto网上找到的)


将smb.conf中以下这两行启用(去掉行首的;号就能够了)

setsebool -P samba_domain_controller on setsebool -P samba_enable_home_dirs on这两行生效后,本身的home目录就能够正常读写了。


针对于目录共享设置:

如 /home/samba/test目录设置成彻底的共享就应该在字符状态写输入:

chcon -t samba_share_t /home/samba/test


同时不要忘记将/home/samba/test目录属性设置成777 就能够了。



默认的,SELinux禁止网络上对Samba服务器上的共享目录进行写操做,即便你在smb.conf中容许了这项操做。


假设你已经配置了共享目录/share并容许用户进行读写,而你又不想关闭SELinux的话,能够试试如下操做:


程序代码:


  1. #/usr/sbin/setsebool -P allow_smbd_anon_write=1

  2. #chcon -t public_content_rw_t /share



其中第一条语句设置SELinux放行标记了public_content_rw_t的内容,第二条语句把欲共享的/share目录标记为public_content_rw_t。



附SELinux资料:




selinux简介


SElinux 在linux内核级别上提供了一个灵活的强制访问控制系统(MAC),这个强制访问控制系统是创建在自由访问控制系统(DAC)之上的。


DAC是指系统的安全访问控制都是由系统管理员root自由管理的,不是系统强制行为


MAC运行的时候,好比一个应用程序或者一个线程以某个用户UID或者SUID运行的时候一样对一些其余的对象拥有访问控制限制,好比文件,套接子(sockets)或者其余的线程


经过运行SElinux MAC内核能够保护系统不受到恶意程序的侵犯,或者系统自己的bug不会给系统带来致命影响(把影响限定在必定范围内)


SElinux为每个用户,程序,进程,还有文件定义了访问还有传输的权限。而后管理全部这些对象之间的交互关系


对于SELinux设定的对象全限是能够根据须要在安装时候规定严格程度,或者彻底禁用


在大多数状况下,SElinux对于用户来讲是彻底透明的,普通用户根本感受不到 Selinux的存在,只有系统管理员才须要对这些用户环境,以及策略进行考虑。这些策略能够按照须要宽松的部署或者应用严格的限制,Selinux提供 了很是具体的控制策略,范围覆盖整个linux系统


好比,当一个对象如应用程序要访问一个文件对象,内核中的控制程序检查访问向量缓存 (AVC),从这里寻找目标和对象的权限,若是在这里没有发现权限定义,则继续查询安全定义的上下关联,以及文件权限,而后做出准许访问以及拒绝访问的决 定。若是在var/log/messages出现avc: denied信息,则代表访问拒绝。


目标和对象经过安装的策略来决定自身的安全关联,同时这些安装的策略也负责给系统产生安全列表提供信息。


除了运行强制模式之外,SELinux能够运行在许可模式,这时候,检查AVC以后,拒绝的状况被记录。Selinux不强制使用这种策略.


如下介绍一下SELinux相关的工具


/usr/bin/setenforce 修改SELinux的实时运行模式


setenforce 1 设置SELinux 成为enforcing模式


setenforce 0 设置SELinux 成为permissive模式


若是要完全禁用SELinux 须要在

/etc/sysconfig/selinux中设置参数selinux=0 ,


或者在/etc/grub.conf中添加这个参数

/usr/bin/setstatus -v

相关文章
相关标签/搜索