简介: 
简单点说,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文件,备份一下。 
然后编辑文件,替换为如下内容: 

Shell代码  

samba4 源码 samba使用教程_samba4 源码

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的控制方式如下: 


Shell代码  

samba4 源码 samba使用教程_samba4 源码



    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 



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