给自己起了一个大言不惭的标题。希望能给众位读者一起启发吧。不过我本文基本上是按照Redhat Enterprise Linux 5来说的,如果你发现跟我描述的不一样,只能自己去网上搜一些相关资料了。
首先抄一段维基百科上面的定义,其实主要就是说这个是用来设置Windows共享服务用的。官网在这里。
Samba服务简介
Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协定做连结的自由软件。目前的版本(v3)不仅可存取及分享SMB的资料夹及打印机,本身还可以整合入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列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也能够用于共享打印机。
Samba能够为选定的Unix目录(包括所有子目录)建立网络共享。该功能使得Windows用户可以像访问普通Windows下的文件夹那样来通过网络访问这些Unix目录。Samba之所以能够与Windows共享并不是首先因为Windows专门开发了支持他的软件,而是他整合了自己开发的SMB(Server Message Block,服务器信息模块)和微软的NetBIOS协议。但是到了Windows 95开始微软就开始在操作系统中提供支持客户机和服务器SMB协议。微软还提供了CIFS(通用Internet文件系统)。
Samba服务功能
- 首先提供与Windows 操作系统网络的文件和打印机共享。
- 提供FTP命令行操作(smbclient)
- 可以用Windows的NetBIOS名字服务器解析IP地址
Samba服务安装
首先要确定自己是否已经安装了这个,可以通过下面的命令来检查
rpm –qa|grep samba
一般都是会提示已经安装Client和Common包。但是还要是让Windows访问还是要安装主程序,如果提示not install就要安装所有的了。
如果你已经可以正常上网的话只需要yum安装就可以了,但是Redhat一般都是用作服务器有些还不是允许上网的,就要安装下面的这些软件了。
root@sample ~]# yum -y install samba
- Samba。服务主文件
- samba-common。 Samba的配置文件的支持。
- samba-Client。客户端软件,主要是提供smbclient命令支持。
- perl。perl(Convert::ASN1)环境软件,有时候你装Samba的时候提示依赖性错误的时候可以检查一些这个是否安装上。
- rpmdb。有时候Fedora装不上的时候可以检查是不是安装了这个rpm包。
- samba-config。Samba的图形化配置界面。
Samba的主文件也位于Redhat 第二张光盘中,挂在到mnt目录下,然后输入
rpm –ivh /mnt/Server/samba-3.0.23c-i386.rpm
就可以安装了。
至于源代码安装这次我就不讲了,大家有兴趣可以去他的官网去看下。
Samba服务配置
安装完毕以后的Samba的主要配置文件密码文件等都是在/etc/samba目录下,配置文件为smb.conf,运行vi或是vim就可以查看。/etc/samba/smbpasswd主要是放用户的samba密码。
Samba用户创建
Samba账号类似于VNC账号,不能像ftp用户一样直接创建,他必须要有跟操作系统同名的用户,这点类似于Windows,但是Samba帐号可以和系统用户密码不同,但是Windows不能。系统用户可以用useradd user命令来创建,创建成功以后用smbpasswd –a user命令添加密码(有点类似与VNC)
Samba文件配置
smb.conf配置文件主要包括全局配置【global】、用户配置【homes】和打印配置【printers】。
首先说全局配置,一些不常用的我就不提了。
- workgroup :工作组名,跟Windows一样,一般默认WORKGROUP就可以了
- server string:描述信息,可以使用变量的,篇幅有限也不是很重要我就不讲了,有兴趣的朋友可以自己搜索一下。
- security:安全模式,有share(匿名访问)、user(samba用户名密码访问)、server(使用另外服务器验证)、domain(Windows服务器主域控验证)、ads(活动目录)
- hosts allow:IP地址控制,只允许某个IP段访问
其次说用户目录,这里就是一些介绍。
comment=this is Linux share directory ----------对此目录的说明
path=/home/share -------Linux系统真实的共享目录,必须为绝对路径,这里就是说在home主目录下的share子目录
browsabe=yes-------是否允许所有人浏览资源时显示共享目录,no为不允许
public=yes -------是否允许所有人都能够看到此目录,no为看不到
writable=yes -------是否允许用户在此目录下可写,no为不可些,如果可写,还需要目录具有w权限,与read only冲突时忽略read only。
read only=yes --------设置用户是否只读
create mode=0700 --------如果有可写权限,建立的文件默认的权限掩码
directory mode=0755 --------如果有可写权限,建立的目录默认的权限掩码
最后如果你安装了samba-config就可以图形化配置。
Samba服务启动
启动
/etc/rc.d/init.d/smb start
service smb start
重启
/etc/rc.d/init.d/smb restart
service smb restart
关闭
/etc/rc.d/init.d/smb stop
service smb stop
自启动
- ntsysv? 终端输入这个命令,然后找到smb服务,点击空格选中,然后单击【确定】
- Chkconfig –level 5 smb on 终端输入这个命令。
- 图形化窗口配置? 在服务的选项卡里面。
Samba服务使用
连接samba服务器
格式为smbclient –L 服务器IP地址/主机名
后面可以加参数,例如使用abc用户访问192.168.0.1的服务器为
smbclient –L 192.168.0.1 –U abc
也可以直接输入共享目录
smbclient –L 192.168.0.1/share_pub? –U abc
输入完命令以后就就变成类似于ftp的操作。
挂载到本地
也可以像Windows映射一样挂载到本地,首先要建一个文件夹作为挂载目录,例如/home/share
然后输入类似于这样
mount –t cifs //192.168.0.1/share_pub /home/share –o username-abc
最后输入目标服务器192.168.0.1中abc的密码就可以了。
Windows客户端访问
只需要在运行对话框或是地址栏中输入
\\192.168.0.1\share_pub
然后就可以了,如果设置的是匿名就自动打开,如果设置的是user就要使用samba的用户名密码打开。在Windows的资源管理器中可以右键选择映射。
本文作者为Nicky,转载请注明。
文章相当专业,可以当作学习资料了。
@免费资源部落嗯,书上的知识的一些总结,还是就是个人经验教训的积累。那个图形化界面就是自己积累的,至于mount那个完全是教训啊,书上说mount没有说清楚,而且举例子举得是/root/Desktop,我就试了mount一个Windows服务器共享文件夹到home目录,结果服务器上所有用户VNC全部被直接T掉了,吓死爹了,赶紧unmount回来。
@Nicky有些东西还得亲自实践才会有明白,以前大学学的书本知识现在都忘光了。