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@bogon ~]# 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@bogon ~]# vim /etc/samba/smb.conf 4 workgroup = WORKGROUP#因为Windows中的是workgroup所以这里需要改 [root@bogon ~]# useradd smbuser1 [root@bogon ~]# 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@bogon ~]# testparm #测试配置文件是否正确,并显示最终生效内容 [root@bogon ~]# 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就告一段落了,如有错误敬请指正。