linux下Samba服务端基本使用

简介:
简单点说,samba就是能实现linux和Windows之间的资源共享,相当于Windows局域网之间的共享文件夹。
以下在centos6上测试通过。

一、安装:
先检查是否安装了,执行rpm -qa | grep samba命令,检查是否安装了samba套件。没有安装的话安装。
最基本的安装方式:
先yum search samba,得到samba套件列表
然后安装最基本的两个就行了samba,samba-client(会帮忙安装默认的samba-common) yum install samba.i686
yum install samba-client.i686

二、创建samba文件存放位置与用户
创建文件夹存放位置:mkdir /data/samba
创建用户(下面两行,第一行代表创建一个不能登录的用户,第二行为该用户指定samba的密码):
useradd -s /sbin/nologin test
smbpasswd -a test
要保证test对创建目录的权限(如读写,目录还要有执行权限)。
两种方式:chown -R test /data/samba
chmod -R 777 /data/samba

三、配置
找到/etc/samba目录下的smb.conf文件,备份一下。
然后编辑文件,替换为如下内容:
#配置段
[global]
               
workgroup = MYGROUP
server string = Samba Server Version %v
security = user

#security选项
#share                       # 不需要任何的验证(不采用)
#user                        # 默认的设置,推荐的,由*unx samba服务器做验证
#server                      # 第三方主机验证
#domain                      # 第三方主机验证(必须是windows域控制器)

#服务的基本限定:
#哪些主机访问
#默认有两个选项
hosts allow = 127. 192.168.
#hosts deny                 # 定义禁止访问的客户端

log file  = /var/log/samba/log.%m
max log size = 50
[homes]
	comment = Home Directories
	browseable = no
	writable = yes
	valid users = %S
	create mode = 0664
	directory mode = 0775

#[printers] 设置打印机共享
#[sharefiles]设置文件共享

	[test]
	comment = test
	path = /data/samba
	valid users = test
	write list = test
	printable = no
	create mode = 0664
	directory mode = 077


四、简单测试一下
1.测试的时候要关闭selinux,要不然会木有权限访问的。关闭selinux的命令为setenforce 0(该命令需要root权限)。最好在执行这样一个命令 service iptables stop,我后来打开了这个,不过也没关系。

2.启动服务
先看一下samba的服务到底启动了没有:ps -aux | grep smb
没有启动的话启动samba服务:/etc/init.d/smb start。(启动是start,停止是stop,重启是restart)

3.在windows下通过局域网共享文件的方式访问。地址为(这个地址是我的linux的地址):\\192.168.56.101,看到如下内容,表示成功。


五、开放selinux及防火墙samba的端口
1.先查看samba服务的端口
netstat -tlnp | grep smb
可以看到端口号为139和445
2.配置防火墙开方端口(还有一种比较简单的方式,在terminal终端中输入setup然后在图形界面下开方防火墙的端口。我是在图形界面下操作的,未测试配置文件的方式):
在/etc/sysconfig/iptables里添加
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT

2.配置selinux允许samba访问具体的目录及文件(selinux比较高深,还需要多看看)
这里有一个建议,如果你对selinux掌握的比较透彻,就打开selinux,反之就关掉它,因为有好多网络应用都要针对selinux进行一系列的配置。

先打开selinux:setenforced 1
发现目录打不开了
再执行:chcon -R -t samba_share_t /data/samba
目录又可以打开了,OK
在selinux中关于samba的控制方式如下:
SElinux与samba
1.samba共享的文件必须用正确的selinux安全上下文标记。
chcon -R -t samba_share_t /tmp/abc
如果共享/home/abc,需要设置整个主目录的安全上下文。
chcon -R -r samba_share_t /home
2.修改策略(只对主目录的策略的修改)
setsebool -P samba_enable_home_dirs=1
setsebool -P allow_smbd_anon_write=1
getsebool 查看
samba_enable_home_dirs -->on
allow_smbd_anon_write --> on

另外还有一种方式,据说是禁止selinux对samba进程的守护,暂时木有试出来。

六、设置samba服务开机启动
参考连接http://www.linuxidc.com/Linux/2009-04/19544.htm
方式1:运行ntsysv命令,在图形界面设置smb进程开机启动
方式2:在控制台输入 chkconfig --level 5 smb on

这个是最简单的使用方式,复杂点的内容后面再介绍~~

猜你喜欢

转载自ajita.iteye.com/blog/1602757