NFS仅能让Unix/linux之间共享数据,CIFS仅能让Win之间沟通php
SAMBA:
跨平台的文件共享服务
主要用于局域网内linux
SAMBA常见的应用: 共享文件与打印机服务 能够提供用户登陆SAMBA主机时的身份认证,以提供不一样身份用户的个别数据 能够进行Windows网络上的主机名解析(NetBIOS Name) 能够进行设备的共享(例如Zip、CD-ROM) SAMBA是架构在NetBIOS这个通讯协议上面开发出来的 NetBIOS 由IBM开发 NetBIOS: Windows基于于主机实现互相通讯的机制; 15个字符 NetBIOS没法跨路由通讯 经过NetBIOS over TCP/IP 能够实现跨路由使用SAMBA服务器所提供的功能 NetBIOS Name 因为NetBIOS主要定义在局域网内,所以并无使用TCP/IP之类的传输协议,也就不须要IP的设置。 俩台主机间的通讯,经过主机在NetBIOS协议中使用NetBIOS Name,每台主机使用不一样的NetBIOS 文件数据在不一样的NetBIOS Name之间沟通。 SAMBA的主要服务: nmbd: 管理工做组,NetBIOS Name 等的解析,使用UDP 137,138端口,向客户端提供构造在IP之上的NetBios名字服务的NetBios名字服务器 smbd:管理SAMBA主机共享的目录,提供文件共享和打印服务的服务器进程。使用TCP 139和445端口。使用smb或cifs协议 向客户提供文件共享空间和打印服务。 SAMBA的常见局域网链接方式: Peer/Peer对等模式(Workgroup model,对等模式) 每台计算机都可以独立运做,不受他人影响。 适用于小型的网络,或者是不须要经常进行文件数据共享的网络环境,或者每一个用户都拥有该计算机的拥有权。 Domain model(主控模式) 将全部计算机的帐号和密码都放置在一台主控计算机(PDC)上面,任何人使用任何计算机时,都须要经过PDC服务器的辨识后,才给以适当的权限。 SAMBA所须要的软件: samba:samba服务端程序 samba-client:samba的Linux客户端 samba-common:服务端与客户端都会使用到的数据
SAMBA 用户帐号必需要存在于Linux系统当中(/etc/passwd),可是SAMBA的密码与linux的密码文件并不相同
samba用户:
帐号:都是系统用户, /etc/passwd
密码:samba服务自有密码文件, ios
将系统用户添加为samba的命令:pdbedit pdbedit -u :指定用户名 -a :添加一个可以使用的SAMBA帐号,帐号须要在/etc/passwd 内存在 -r :修改一个帐号的相关信息 -x :删除一个SAMBA帐号 -L :列出目前在数据库当中的帐号与UID等相关信息 -v :与 -L 搭配使用列出更详细的信息 修改SAMBA帐号密码 smbpasswd: SAMBA的配置文件: /etc/samba/smb.conf #samba主配置文件 /etc/sysconfig/samba #提供启动smbd,nmbd时,还想要加入的相关参数。 /var/lib/samba/private/{passdb.tdb,secrets.tdb} 管理samba的用户帐号/密码时,会用到的数据库文件 /usr/share/doc/samba-<版本>:samba技术手册 /usr/bin/{smbd,nmbd} #samba服务端服务程序 /usr/bin/{tdbdump,tdbtool} #samba3.0之后的版本中,用户的帐号密码参数已经使用数据库管理,samba使用的数据库为TDB。 tdbdump能够查看数据库的内容,tdbtool能够进入数据库手动修改帐户及密码参数。(需安装tdb-tools) /usr/bin/smbstatus #列出当前samba的链接情况,包括PID,共享的资源,使用的用户来源等。 /usr/bin/pdbedit #管理samba用户数据 /usr/bin/testparm #检查主配置文件smb.conf的语法错误 /usr/bin/smbclient #查看其余计算机共享出来的目录与设备,或在本身的samba主机上,查看samba是否设置成功 /usr/bin/nmblookup #查出NetBios Name /usr/bin/smbtree #查出工做组与计算机名称的树形目录分布图 SAMBA的主配置文件;(#号与;都是注释文件) /etc/samba/smb.conf 主机信息的配置: [global] workgroup = MYGROUP #工做组的名称,共享文件客户端服务端工做组要相同 netbios name = MYSERVER #主机的NetBIOS Name名称,每部主机均不一样 server string = Samba Server Version %v #主机的简易说明 display charset=xx 本身服务器上面的显示编码 unix charset=xx 在Linux服务器上所使用的编码 dos charset=xx Windows客户端的编码 host allow=IP 访问权限设定,指定IP的主机能够访问SAMBA服务 关于语言的设定可参考: http://phorum.vbird.org/viewtopic.php?t=22001 log file=xx 日志文件的存储文件 max log size=xx 日志文件最大多大 security=xxx share,user,domain 三选一 share:共享的数据不须要密码,你们都可使用(安全性差) user:使用samba服务器自己的密码数据库 domain:使用外部服务器的密码,也就是samba时客户端的意思,须要password server=IP 的设置值 encrypt passwords=YES 密码是否加密 passdb backend=数据库格式 共享信息的配置: [共享名称] path=xxx 实际共享的目录 comment:共享目录的说明 guest ok=yes 容许以缺省的guest用户权限进行访问(缺省权限为guest account 设置的权限,缺省设置为nobody,编译时指定) browseable:是否让全部用户看到这个目录 writable:是否能够写入 write list=@组 能够进入此资源的特定用户组 create mode=xx 建立文件的相关权限 directory mode=xx 建立目录的权限 read only = yes 是否只读 检查配置文件语法正确: testparm 命令 -v:查阅完整的参数设置,连同默认值也会显示出来 smbclient命令: 查看其余计算机共享出来的目录与设备,或在本身的samba主机上,查看samba是否设置成功 smbclient -L [//主机或IP] [-U 用户帐号] -L:仅查询后面链接的主机所提供的共享资源目录 -U:以指定的帐号来尝试访问该主机的可用资源 基于挂载的方式访问: mount -t cifs //SERVER/shared_name /mount_point -o username=USERNAME,password=PASSWORD