Samba,是用UNIX系列的作系微Windows作系的SMB/CIFS(Server Message Block/Common Internet File System)路定做的自由。第三版不可存取及分享SMB的料及印表,本身可以整合入Windows Server的域,扮演域控制站(Domain Controller)以及加入Active Directory成。而言之,此在WindowsUNIX系列OS之搭起一座,者的源可互通有。
Samba是多服以及的,其包括TCP/IP上的NetBIOS(NBT)、SMB、CIFS(SMB的增版本)、DCE/RPC或者更具MSRPC(居套件)、一WINS服器(也被作NetBIOS Name Server(NBNS))、NT域套件(包括NT Domain Logons、Secure Accounts Manager(SAM)、Local Security Authority(LSA)服、NT-style打印服(SPOOLSS)、NTLM以及近出的包括一改的Kerberos改的型目(LDAP)在的Active Directory Logon服)。以上些服以及常被地NetBIOS或者SMB。Samba也能用於共享打印。
这里稍微解释一下CIFS,它工作在137/UDP,138/UDP,139/TCP,445/TCP,大家可能觉得它怎么工作在这么多端口上,这其实和它使用NBT(NetBIOS over TCP/IP)和TCP协议工作有关。
NBT使用137, 138 (UDP) and 139 (TCP)来实现基于TCP/IP的NETBIOS网际互联。在Windows NT中SMB基于NBT实现。而在Windows2000中,SMB除了基于NBT的实现,还有直接通过445端口实现。当Win2000(允许NBT)作为client来连接SMB服务器时,它会同时尝试连接139和445端口,如果445端口有响应,那么就发送RST包给139端口断开连接,以455端口通讯来继续.当445端口无响应时,才使用139端口。当Win2000(禁止NBT)作为client来连接SMB服务器时,那么它只会尝试连接445端口,如果无响应,那么连接失败。(注意可能对方是NT4.0服务器。)如果win2000服务器允许NBT, 那么UDP端口137, 138, TCP 端口 139, 445将开放。如果 NBT 被禁止, 那么只有445端口开放。
当然大家了解一下就好了,其实就是Windows的网上邻居罢了。
在CentOS6.6上默认安装了smbclient,它有两种使用方式:
[root@localhost ~]# smbclient -L 192.168.1.103 -U test#test是Windows上的一个用户
[root@localhost ~]# smbclient //192.168.1.103/test -U test
挂载为文件系统的访问方法:
[root@localhost ~]# mount -t cifs //192.168.1.103/test /mnt -o username=test[,password=]
Samba的服务端直接使用yum安装就好了:
[root@linuxidc ~]# yum install samba
/etc/logrotate.d/samba
/etc/openldap/schema
/etc/openldap/schema/samba.schema
/etc/pam.d/samba
/etc/rc.d/init.d/nmb#服务脚本
/etc/rc.d/init.d/smb#服务脚本
/etc/samba/smb.conf#主配置文件
/etc/samba/smbusers
/usr/bin/eventlogadm
/usr/bin/mksmbpasswd.sh
/usr/bin/smbstatus
/usr/sbin/nmbd
/usr/sbin/smbd
Samba用户:
账号:都是系统用户,/etc/passwd
密码:Samba服务自己的密码文件
将系统用户转换为Samba的命令smbpasswd
[root@linuxidc ~]# vim /etc/samba/smb.conf
4 workgroup = WORKGROUP#因为Windows中的是workgroup所以这里需要改
[root@linuxidc ~]# useradd smbuser1
[root@linuxidc ~]# smbpasswd -a smbuser1
-d:禁用账号
-e:启用账号
-x: 删除账号
其共享目录默认为用户的家目录
设置好之后再Windows的网上邻居中就可以看到了:
其共享目录为用户的家目录。
配置文件:smb.conf
全局设定
特定共享目录设定
私有家目录
打印机共享
自定义共享
255 [samba]
256 comment = My Samba Testing.#注释信息
257 path = /shared/samba#共享目录
258 browseable = yes#是否允许非属主用户浏览
259 guest ok = yes#是否运行来宾账户访问
260 writable = no#是否可写
public = yes
readonly = yes
write list = +staff #staff组内的用户都可写
[root@linuxidc ~]# testparm #测试配置文件是否正确,并显示最终生效内容
[root@linuxidc ~]# setfacl -m u:smbuser1:rwx /shared/samba/ #对目录的权限取决于Samba权限和文件系统权限的交集
此时smbuser1对samba目录是不可写的:
我们讲write list = +smbuser1加入配置文件中的[samba]配置段就可以创建文档了:
OK,Samba就是这么简单,接下来我们来说一下Samba的网页版GUI界面,它是一个叫做samba-swat的包,在CentOS的扩展光盘上。
[root@samba ~]# yum install -y samba-swat
[root@samba ~]# rpm -ql samba-swat
/etc/xinetd.d/swat #它是放在xinetd进程里的
[root@samba ~]# vim /etc/xinetd.d/swat
1 # default: off
2 # description: SWAT is the Samba Web Admin Tool. Use swat \
3 # to configure your Samba server. To use SWAT, \
4 # connect to port 901 with your favorite web browser.
5 service swat
6 {
7 port = 901
8 socket_type = stream
9 wait = no
10 only_from = 192.168.1.0/24
11 user = root
12 server = /usr/sbin/swat
13 log_on_failure += USERID
14 disable = no
15 }
[root@samba ~]# service xinetd restart
[root@samba ~]# ss -tnl | grep :901
LISTEN 0 64 :::901 :::*
这样就可以使用浏览器访问了
这里有好多使用文档,非常详细大家有兴趣可以自己看一下。
在SHARES中有我们共享的信息,这里的Advanced模式中有众多的选项可以自行选择,而且这里如果一点击Commit Changes将会覆盖掉/etc/samba/smb.conf中所以的内容。
STATUS中有我们Samba服务器的状态信息以及服务控制按钮。
好了到此我们的Samba就告一段落了,如有错误敬请指正。
------------------------------------分割线------------------------------------
如何在Ubuntu 14.04中使用Samba共享文件
VMWare 虚拟机 Ubuntu 双网卡 访问 samba 速度 翻倍
Samba文件共享服务器加入Windows Server 2003域
Win7+VMware+Fedora18 Samba服务器的搭建图解
------------------------------------分割线------------------------------------
Samba 的详细介绍:请点这里
Samba 的下载地址:请点这里
更多CentOS相关信息见CentOS 专题页面