简介:
简单点说,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文件,备份一下。
然后编辑文件,替换为如下内容:
1. #配置段
2. [global]
3.
4. workgroup = MYGROUP
5. server string = Samba Server Version %v
6. security = user
7.
8. #security选项
9. #share # 不需要任何的验证(不采用)
10. #user # 默认的设置,推荐的,由*unx samba服务器做验证
11. #server # 第三方主机验证
12. #domain # 第三方主机验证(必须是windows域控制器)
13.
14. #服务的基本限定:
15. #哪些主机访问
16. #默认有两个选项
17. hosts allow = 127. 192.168.
18. #hosts deny # 定义禁止访问的客户端
19.
20. log file = /var/log/samba/log.%m
21. max log size = 50
22. [homes]
23. comment = Home Directories
24. browseable = no
25. writable = yes
26. valid users = %S
27. 0664
28. 0775
29.
30. #[printers] 设置打印机共享
31. #[sharefiles]设置文件共享
32.
33. [test]
34. comment = test
35. path = /data/samba
36. valid users = test
37. write list = test
38. printable = no
39. 0664
40. 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的控制方式如下:
1. SElinux与samba
2. 1.samba共享的文件必须用正确的selinux安全上下文标记。
3. chcon -R -t samba_share_t /tmp/abc
4. 如果共享/home/abc,需要设置整个主目录的安全上下文。
5. chcon -R -r samba_share_t /home
6. 2.修改策略(只对主目录的策略的修改)
7. setsebool -P samba_enable_home_dirs=1
8. setsebool -P allow_smbd_anon_write=1
9. getsebool 查看
10. samba_enable_home_dirs -->on
11. 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
这个是最简单的使用方式,复杂点的内容后面再介绍~~