SELinux服务器不关闭配置 samba的方法

运维 系统运维
点击一看,是SELinux报警,报警时间与每次客户机访问samba时间一致,估计是SELinux太严谨的问题,将客户机的错误信息在网上搜索,查找到果然是samba与SELinux冲突的问题。

给大家推荐一款很不错的SELinux系统很有学习价值,这里我主要讲解SELinux系统的应用,包括介绍SELinux知识等方面。前段时间在实验室的4*4核服务器上安装Samba服务器,解决了服务器安装的硬件问题后,在服务器上配好了Samba,但在客户机访问Samba时,显示错误。查看到主机机器上右上方有红色感叹号显示。

点击一看,是SELinux报警,报警时间与每次客户机访问samba时间一致,估计是SELinux太严谨的问题,将客户机的错误信息在网上搜索,查找到果然是samba与SELinux冲突的问题。

PS:曹老师开始用挂载的方法配NSF时也没配成功,同样是SELinux的问题,关闭后可解决。 方法一:关闭SELinux,并修改配置文件,使系统启动时不启动SELinux。(我采用的是这种方法)

  1. Disable selinux   
  2. [root@Jie ~]#  vi /etc/sysconfig/selinux  
  3. # This file controls the state of SELinux on the system.  
  4. SELINUXcan take one of these three values:  
  5. #       enforcing - SELinux security policy is enforced.  
  6. #       permissive - SELinux prints warnings instead of enforcing.  
  7. #       disabled - SELinux is fully disabled.  
  8. SELINUX=enforcing 
  9. SELINUXTYPEtype of policy in use. Possible values are:  
  10. #       targeted - Only targeted network daemons are protected.  
  11. #       strict - Full SELinux protection.  
  12. SELINUXTYPE=targeted 

把 SELINUX设定为disable, 下次启动系统后将会停止SElinux。Linux核心参数(Kernel Parameter)或者可以在核心参数后加上: selinux=0 (停止) 或 selinux=1 (开启)参数档案/boot/grub/menu.lst

  1. title Fedora Core (2.6.18-1.2798.fc6)  
  2. root (hd0,0)  
  3. kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet  selinux=0 
  4. initrd /initrd-2.6.18-1.2798.fc6.img 

检查SELinux现时况态要知到你现在是否使用 SELinux:# getenforce disabled

方法二:不关闭SELinux配置 samba的方法(未测试)

将smb.conf中如下这两行启用(去掉行首的;号就可以了) setsebool -P samba_domain_controller on setsebool -P samba_enable_home_dirs on这两行生效后,自己的home目录就可以正常读写了。

如果想将/home/samba/temp目录设置成完全的共享就应该在字符状态写输入:chcon -t samba_share_t /home/samba/temp 同时不要忘记将/home/samba/temp目录属性设置成777 就可以了。其它和以前的FC版本应该没有什么区别了。

默认的,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相关的工具

  1. /usr/bin/setenforce 修改SELinux的实时运行模式  
  2. setenforce 1 设置SELinux 成为enforcing模式  
  3. setenforce 0 设置SELinux 成为permissive模式 

如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0 ,或者在/etc/grub.conf中添加这个参数/usr/bin/setstatus -v

【编辑推荐】

  1. Fedora vsFTPd和防火墙及SELINUX的关系
  2. 教会你Redhat Enterprise Linux关闭SELinux
  3. Ubuntu Linux系统已开始支持SELinux技术
  4. vsFTPd的服务器和防火墙及SELinux的关系
  5. 戴尔加入微软Novell同盟 共推SuseLinux软件
责任编辑:佚名 来源: CSDN
相关推荐

2010-03-31 10:41:49

CentOS Samb

2010-06-10 09:56:46

OpenSUSE使用

2010-03-31 10:05:40

CentOS Samb

2012-02-08 09:38:33

2009-09-01 09:50:22

Samba服务器

2011-09-01 18:12:43

Linuxsamba

2010-10-27 10:14:34

2009-10-26 08:46:37

linux samba

2010-02-03 14:28:15

Linux Samba

2010-10-11 17:16:13

mysql服务器

2009-11-26 09:24:48

Suse Linux

2014-09-22 09:52:06

2011-09-20 09:15:11

2012-05-21 10:16:53

2012-04-27 10:20:45

2011-02-22 14:19:28

vsFTPd启动关闭

2011-02-24 09:57:40

vsFTPd启动关闭

2012-09-20 09:43:33

Linux服务器串口Linux

2010-09-14 10:29:43

配置tftp服务器

2010-09-14 14:36:04

fedora12 tf
点赞
收藏

51CTO技术栈公众号