分类: LINUX
2008-08-22 12:30:45
先简单介绍一下,SMB(Server Messages Block,信息服务块)是在局域网上共享文件和的一种协议,通过它可以使局域网内的Windows、linux和Unix等系统共享文件和打印机等资源。在linux上可以运行SMB的很多,最常用的就是Samba。如果您使用的是REDHAT 9,在那三张光盘中就提供了samba的RPM包。
安装samba的RPM包
像在linux下安装配置其他服务一样,先要安samba有关的RPM包:
1)Samba-common:包括samba服务器和客户端均需要的文件(在第一张光盘中)
2)Samba:samba服务端软件(在第一张光盘中)
3)Samba:samba客户端软件(在第一张光盘中)
说明一下,列出这些要安装的rpm包包只是为了说明清楚些,其实只要用个“samba*”就全搞定了。为了老少皆宜,我把所有操作过程都帖了过来,连不会挂载光驱的朋友都应该能看懂吧。
1)[root@linux root]# mount /mnt/cdrom
[root@linux root]# cd /mnt/cdrom/RedHat/RPMS/
[root@linux RPMS]# rpm -ivh rpmdb--9-0.20030313.i386.rpm
warning: rpmdb-redhat-9-0.20030313.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ###################################### [100%]
1:rpmdb-redhat ################################### [100%]
这一步是准备工作,把REDHAT 9的C盘中的rpmdb-redhat包安上,可以解决安装时的依赖关系错误。
[root@linux RPMS]# cd
[root@linux root]# umount /dev/cdrom
[root@linux root]# mount /mnt/cdrom
既然samba的包都在REDHAT 9的A盘,就在光驱中放入A盘,mount挂载一下。
mount: /dev/cdrom already mounted or /mnt/cdrom busy
mount: according to mtab, /dev/cdrom is already mounted on /mnt/cdrom
[root@linux root]# cd /mnt/cdrom/RedHat/RPMS/
[root@linux RPMS]# rpm -ivh samba* --aid
安装所有以samba开头的包,加上—aid参数,就把安装时所需的其他包也安上了,很方便。
warning: samba-2.2.7a-7.9.0.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ##################################### [100%]
1:libjpeg ##################################### [ 14%]
2:libtiff ##################################### [ 29%]
3:libpng ##################################### [ 43%]
4:cups-libs ##################################### [ 57%]
5:samba-common ################################## [ 71%]
6:samba ##################################### [ 86%]
7:samba-client #################################### [100%]
修改配置文件
[root@linux RPMS]# vi /etc/samba/smb.conf
在[global]部分做如下修改:
1) workgroup = WORKGROUP (改一下工作组名)
2) hosts allow = 192.168.138. (写一个允许访问这的网段,末尾有“.”)
3) security=user
samba有四种等级:
share:用户不需要账户及密码即可登录samba
user:由提供服务的samba服务器负责检查账户及密码(默认)
server:检查账户及密码的工作由另一台windows或samba服务器负责
domain:指定windows域控制服务器来验证用户的账户及密码)
4) encrypt passwdords=yes (去掉前面的注释“;”)
smb passwd file = /etc/samba/smbpasswd (密码文件的位置)
在文件末尾添加如下内容:
[samba] (共享文件夹名)
comment=This is my samba server (这是注释行,可以不写东西)
path=/samba (指定要共享文件的位置)
writable = yes
browseable =yes
read only = yes
create mode=0664 (这是文件权限)
directory mode=0777 (这是目录权限)
保存退出。vi编辑器使用,按“i”,修改添加;先按“esc”,再按“:”输入“wq”即是保存退出,输入“q!”是不存盘退出。
启动samba服务
[root@linux samba]# service smb start (启动samba服务)
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
[root@linux samba]# testparm (检查配置文件的正确性)
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[samba]"
Loaded services file OK.
Press enter to see a dump of your service definitions
创建一个samba用户
该用刻户在windows下有没有都无所谓。
1)建一个系统用户
[root@linux samba]# useradd samba (建一个名叫samba的用户)
[root@linux samba]# passwd samba (给samba用户添加密码)
Changing password for user samba.
New password: (密码要六位以上,不显示在屏幕上)
BAD PASSWORD: it does not contain enough DIFFERENT characters
Retype new password: (确认密码)
passwd: all authentication tokens updated successfully.
2)然后创建samba帐户
[root@linux samba]# smbpasswd -a samba
(-a必须加,为了生成密码文件smbpasswd,该密码是windows登陆Linux的samba用户密码)
New SMB password:
Retype new SMB password:
unable to open passdb database.
Added user samba.
3)查看一下生成的用户名、密码
[root@linux samba]# vi /etc/samba/smbpasswd
samba:500:A9C604D244C4E99DAAD3B435B51404EE:ACB98FD0478427CD18949050C5E87B47:[UX ]:LCT-468268E6:
4)重新启动samba服务
[root@linux samba]# service smb restart
Shutting down SMB services: [ OK ]
Shutting down NMB services: [ OK ]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
最后阶段,进行测试
1)先按照主配置文件所指定的位置,建好要共享的资源。
[root@linux usr]# mkdir samba (建/usr/samba文件夹)
[root@linux usr]# chmod 777 /usr/samba (samba受本地文件系统权限和共享权限两种权限,而且是取最严格的权限,为了方便就把本地权限都给足好了)
[root@linux usr]# cd samba
[root@linux samba]# vi aaa.txt
2)在Windows客户机的地址栏中输入sambaip(如“\\192.168.138.110)
OK了,在linux搭建的samba服务器上资源可以供Windows客户端访问了。