天天看点

Linux下简单配置SAMBA服务,实现与Windows系统文件共享.

首先你的LINUX系统上必须安装samba服务

执行下面的命令,进行检查:

# rpm –qa | grep samba

如果屏幕显示以下信息,则说明已经安装了Samba服务。

samba-common-2.2.1a-4

samba-swat-2.2.1a-4

samba-2.2.1a-4

samba-client-2.2.1a-4

如果没有安装,请从安装光盘安装。执行下面的命令:

# mount /dev/cdrom /mnt/cdrom

# cd /mnt/cdrom/

# rpm -ivh samba-common-2.2.1a-4.i386.rpm

# rpm -ivh samba -2.2.1a-4.i386.rpm

# rpm -ivh samba –clinet-2.2.1a-4.i386.rpm

完成安装后进入samba配置文件 /etc/samba/smb.con 进行修改 ,以本机共享 /var/rhcepkg 文件为例

通常修改如下的参数:

#修改文件夹权限,定义组和其他权限为RWX

#chmod 777 /var/rhcepkg

#设置samba服务器所在的工作组为mygroup

workgroup=mygroup

#设置Samba服务器的主机名。

server string = Samba Server

#设置hosts allow = 127. 192.168.1. (这里只取IP地址的前三位,只要指定IP网段就行了)

#设置Samba的安全等级,将默认的user改成share,这样将不需要密码验证,即可登录Samba主机。security=share

#设置 /var/rhcepkg 作为共享目录。该共享目录权限完全开放(如果是只让其他用户读,不能写,则将改成read only=yes)。

[rhcepkg]

comment=rhcepkg

path= /var/rhcepkg

read only=no

browseable=yes

writeable=yes

public=yes

……

启动Samba服务

# /etc/rc.d/init.d/smb start

如果在修改完相应参数后,需要重新启用,则执行下面的命令:

# /etc/rc.d/init.d/smb restart

关闭SElinux开关为permisive ,(如果是enforcing,会导致权限问题而无法访问)

#setenforce 0 (这里只是在内存中改变SELINUX的开关,如果需要下次重启也改变,需要修改 /etc/sysconfig/selinx参数

检查Selinux状态

#sestatus

当然你还可以在selinux=enforcing状态下,通过设置BOOLING值来解决权限访问的问题.

Samba的boolean值的查看: #getsebool –a | grep samba

如果你共享文件夹在家目录下,你可以这么做

If you want to share home directories via samba please run:

# setsebool -P samba_enable_home_dirs on

如果你建立了一个新的目录进行共享,你可以这么做

If you create a new directory you want to share you should mark it as

"samba-share_t" so that selinux will let you write into it.

Make sure not to do that on system directories as they may already have

been marked with othe SELinux labels.

# chcon -t samba_share_t  /var/rhcepkg (只能解决/rhcepkg目录的访问权限,而在/rhcepkg下的文件夹,需要继续设置)

例如:# chcon -t samba_share_t  /var/rhcepkg/* (推荐用这个)

关闭Linux防火墙

如果Linux上安装了防火墙,会导致无法访问共享文件夹,这时可以先试试关闭防火墙。

# chkconfig iptables off

# service iptables stop

如果关闭防火墙后,能正常访问,则需要进一步确定防火墙开放Samba服务需要使用的端口(135、139)。这样就可以实现文件夹共享了。

如果需要开机时自动启动Samba服务,则可以执行下述命令:

# chkconfig –level 35 smb on

如果在另一台LINUX系统的PC上需要共享SAMBA服务

#smbclient -L 192.168.x.x -N (192.168.X.X为目标SAMBA服务器IP,此命令可以列出该服务器上共享的SAMBA目录和share name)

#mount //192.168.x.x/share name /mnt -o username=用户名%密码

PS : 其实以上的方法在安全上还很欠缺,比如security=share,允许所有用户都能访问

还有关闭了SELINUX这个LINUX系统的法律规则.

继续阅读