教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 系统编程教程 · 程序综合

怎么样架设Samba服务器,用user共享方式(1)

学院最新推荐文章
教程推荐
『怎么样架设Samba服务器,用user共享方式(1)』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2005-12-1 
一点理论:

在Windows中,我们都知道网络邻居,是Windows共享资源的方式。Linux写Windows互访与共享资源的方式是利用Samba服务,其实我觉得它更象一个软件。Windows与Linux通过Samba,可以相互共享资源,是互为服务器和客户端的关系。比如当装有Windows操作系统的机器,向装有Linux系统的机器存取文件,那Windows应该是客户机,而Linux则是服务器;如果Linux的机器向Windows访问和存限文件及使用Windows提供的打印服务,这时应该说Windows是服务器,而Linux是客户机。

注意的事项:

1。如果在windows下不能加入linux的共享,可能出现在帐户上,要在linux和window的机器上都要建一个相同的用户,密码也要一样。否则不能访问。

2。如果在windows的网络邻居中,有时可能不会发现linux的共享。我们要自己在添加网络邻居中加上。要以\\linux的samba的主机名也就是netbios name中定义的\共享名。这样说可能新手弟兄不太懂。我说的也不太专业。呵。。。请仔细看本帖中的\\linsir01\win02类似的,还有\\ linsir01\share;\\linsir01\win03之类的。

3。要在windows加上相关的协议;添加网络协议,把IPX/SPX以及NETBEUI两个协议加入。

操作环境:三台机器,两台win2000;一台是RH80.

一、查看是否Samba在系统中被安装了;这也是安装其它软件的操作步骤:注:以root登入,或者以root权限执行;

#rpm -qa | grep samba

samba-2.2.5-10

samba-swat-2.2.5-10

samba-common-2.2.5-10

samba-client-2.2.5-10

如果没有出现上面的三个安装包,我们就要在盘中把这些包找出来安装上;把光盘中凡是带有samba的都找出来,放到linux的一个临时的文件夹中。比如我们临时放到/tmp目录里。

然后执行:

#rpm -ivh samba*.rpm --nodeps --force

二、然后我们判断一下,是否samba服务已经启动,如果没有,我们就得打开。

一般说来,在系统默认的情况下,samba是不会启动的。但我们也应该懂得如何查看此服务是否启动了,这也是我们的一个操作的流程吧。使用查看进程命令:

#ps -aux | grep smb

在这里,我们要说明一点,为什么我们不用#ps -aux | grep samba命令呢,在下文可能就明白了,现在能记住就好了。不为什么,因为系统的服务就是smb,而非samba,samba只是一个名字而已。

如果用查看进程的命令,出现了第二行的样子。就是已经把samba服务打开了,如果没有出现,就是没有打开。

#ps -aux | grep smb

root 1719 0.0 0.3 4916 1820 ? S 08:21 0:00 smbd -D

root 1849 0.0 0.1 4776 628 pts/1 S 08:48 0:00 grep smb

三、打开samba服务;

如果我们没有打开samba服务,我们应该用以下两种方法来打开,系统服务,一般打开方式都是如此。

1.用setup命令来打开,在#setup执行下去的时候,有个System serverices,然后移动键盘的上下键来选定[System serverices]项,然后把smb和swa两项前面加个*号,

表示已经选中了,意思就是自动启动这两个服务。或者用更直接的办法用命令进入[System serverices]的选择框中。

以上解释中用到的两个命令是:

#setup



#ntsysv

以这种方式,只是打开,但如果不重新启动,samba的服务也不能运行,我们还要用命令来执行,让机器不重新启动的情况下把samba服务执行起来,一般的情况下,我们要操作的

samba的命令都在/etc/rc.d/init.d/目录里,要用下面的方式来运行。

# /etc/rc.d/init.d/smb start

用了上面的命令,如果能看到下面的提示,就证明已经把samba启动了。

启动 SMB 服务: [ 确定 ]

启动 NMB 服务: [ 确定 ]

当然也可以用下面的方式,只是多了一步,不过进入/etc/rc.d/init.d/目录看一下也好,看里面都有什么,凡是我等菜鸟,也不能不看一下。

#cd /etc/rc.d/init.d/

然后再执行

#./smb start

然后了,那如何把samba的服务停下来呢?那就stop;如何重启samba服务器,那就restart了

如果是在/etc/rc.d/init.d目录中,我们就要执行

#./smb stop

#./smb restart

如果不在/etc/rc.d/init.d目录中,我们就要这样执行,上面已经有说过了。

# /etc/rc.d/init.d/smb stop

# /etc/rc.d/init.d/smb restart

2.运行如下的命令也有在X下打开

#redhat-config-services

然后也是选中smb和swat,然后保存一下。这个比较简单。如果您在smb这项,选中后,然后就点一下开始。这样就把smb服务打开了。

把服务打开了也启动起来了,我们还是要用查看进程命令来查看一下,samba服务是否在运行了。

#ps -aux | grep smb

如果还是没有下面这行,我觉得不太可能了。呵。。。。。

root 1719 0.0 0.3 4916 1820 ? S 08:21 0:00 smbd -D

三、设置samba的配置文件

1.图形化的配置工具swat;

打开mozilla,或者konqueror以及gnome下的文件管理器,总之无论如何打开文件管理器就行了。在地址栏中输入

127.0.0.1:901就会出现一个提示框[SWAT@127.0.0.1:901]

在用户名下输入root用户名和密码就能进入图形置置界面了,这个比较简单。

1]点一下[Global]那项,就出来一个让我们设置的选项。我们只要简单的设置一下这些就行了,如果您对samba不太了解,建议不要改其它的东西。如果您按我在前面说的做,把smb.conf

文件有备份,那您改就改吧。。哈。。错了也没有什么,我们再恢复一下就OK了。。

Base Options

client code page 936 这样就能显示简体中文了用户组名。

[workgroup]这一项,就是在网络邻居中[Windows的称呼]中的工作组的名称,这一项我用的是MSHOME,因为我把其它的两台电脑也设置在了这个工作组。

[netbios name]这是出现在网络邻居中的主机名,我设置的linsir01,采用默认也行。出现的是Linux真正的主机名。

[security],设置为user

[encrypt passwords]设置为yes

2]点一下[shares],也看一下吧。这个也是比较重要的,我还是主要说几点要注意的。其实我们在局域网中用到的都比较简单的功能。简单的设置一下就行了。

点一下[choose share],有一个是[homes]的选项吧。点一下。。。然后。。。。看过来。。看一下和下面的差不多就行,其实不用改什么,了解一下就行。。

comment 这个选项可以不写

path 也可以不写

guest account nobody 默认就行。

valid users %S

read only Yes

guest ok No

3]creat share 这一项就是要我们创建共享目录以及个人目录的,可能有的弟兄有点不解,为什么这样说呢??一步一步的来。。。。。

A。我们创建一个win02,在[ceate share]那个按钮的边上,有个空格。呵。。。可能您知道了吧,写个win02,然后按一下[create share]

comment win02

path /home/win02

username win02

guest accoun nobody

valid users win02

read only No

guest ok No

browseable Yes

available Yes

B。以相同的办法创建win03,目录也为/home/win03

C。然后我们再创建一个所有用户都能看共享的目录,也就是说,所有的用户都能写入,读取,执行。我就是把这个目录用来做windows机器软件安装的基地了。哈。。。


我们还是按照上面步骤A的样子,在[create share]上输入share, 对于名字来说,我们还是不要用太长的,否则测试通不过,可能是最多只有8个字节,所以我就用最简单的了。点到为止。

comment win and linux share

path /share

guest accoun nobody

read only No

guest ok Yes

browseable Yes

available Yes

这样就行了。。。

关于打印方面的,以linux的机器上的打印机,还是大家一起来研究吧。我安装成功了,可是windows打印东西,总是出乱码。所以在这里我就不说如何设置了。我成功了,再补充。

4]测试配制文件是否正确

[root@linuxsir01 root]# testparm

Load smb config files from /etc/samba/smb.conf

Processing section "[homes]"

Processing section "[printers]"

Processing section "[share]"

Processing section "[win03]"

Processing section "[win02]"

Loaded services file OK.

Press enter to see a dump of your service definitions

如果出现上面样子的,就差不多了,如果有警告之类的,可能问题出现在[share]那一步中,可能名字太长了,不要超过8个字节。否则通不过

5]重新启动smb

[root@linuxsir01 root]# /etc/rc.d/init.d/smb restart

关闭 SMB 服务: [ 确定 ]

关闭 NMB 服务: [ 确定 ]

启动 SMB 服务: [ 确定 ]

启动 NMB 服务: [ 确定 ]

如果不成功,再试一下,或者找一下配制文件方面的问题。

四。创建议系统的用户和密码,以及smb的密码。

1.创建系统用户

[root@linuxsir01 root]# useradd win02

[root@linuxsir01 root]# useradd win03

2.创建系统用户的密码

[root@linuxsir01 root]# userpasswd win02

然后就是输入密码了。。。这个应该简单,没有什么难度才对。比如我们用oTimsinm

[root@linuxsir01 root]# userpasswd win03

这个也是一样的。。

五。创建win02的win03的用户名在smb的密码。

1]生成密码文件

[root@linuxsir01 root]# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

2]更改密码文件,我们要把除了win02与win03以外的用户全都删除。只留win02和win03两行。

3]创建win02的win03用户的smb密码,密码要与创建系统用户名的密码一样。比如我们上面说的oTimsinm。

[root@linuxsir01 root]# smbpasswd win02

New SMB password:在这里输入oTimsinm

我们用同样的方法创建win03的smb密码。

以下的工作就差windows机器的设置了,这也比较简单。

4]我们改变一下/share目录的权限。让所有的用户都可以读写和执行

[root@linuxsir01 root]# chmod 777 /share

当然这是不安全的作法,如果想限制一下权限,您可以试一下,就明白了。。。

六。windows机器的设置。

1]创建windows下的用户和密码。

因为我们在[Global]中设置的是user共享方式 ,也就是说,要用windows用户名来验证。说明白一点就是windows的必须设置一个与linux机器上完全相同的用户,密码也必须一致。

这种方式就是samba密码服务验证,我们在前面已经为win02和win03在linux的服务器上创建了系统用户名和密码,也创建了smb的密码。所以我们在这步中也要在windows机器上创建win02和win03两个用户。我这样说,也不知道能不能说明白,工作组,我们也用MSHOME吧。

在windows机器上创建win02和win03两个用户。如果有两台机器windows机器,那就太好了,一台一个。呵。。。。密码还和在linux机器上的win02与win03一样。

切记,否则通不过验证。计算机其实很听话,一步一步的来就OK了。

2]在windows的机器上,添加网络协议,把IPX/SPX以及NETBEUI两个协议加入。这个应该更简单。。。

3。把windows机器上的磁盘或者文件夹共享。这也比较简单。

七。在linux的机器上操作下面的命令,查看一下每台机器的

1.咱们先查看一下linux服务器的smb的情况。最好用IP来查看。。。。

[root@linuxsir01 root]# smbclient -L 192.168.0.1

added interface ip=192.168.0.1 bcast=192.168.0.255 nmask=255.255.255.0

added interface ip=192.168.0.2 bcast=192.168.0.255 nmask=255.255.255.0

Password:在这里,我们按两下回车就行了。。不要添什么密码。

Anonymous login successful

Domain=[MSHOME] OS=[Unix] Server=[Samba 2.2.5]

Sharename Type Comment

--------- ---- -------

homes Disk Home Directories

share Disk win linux share

epsonc40 Printer

win03 Disk

win02 Disk win02 home

IPC$ IPC IPC Service (Samba Server)

ADMIN$ Disk IPC Service (Samba Server)

Server Comment

--------- -------

LINSIR01 Samba Server

LINUXSIR02

Workgroup Master

--------- -------

MSHOME LINSIR01

如果在linux的机器上看到最下面一行,可能就有点不对了。因为共享中没有我们在[Global]中设置的LINSIR01,所以共享一般不会成功。

下面这个我是查看一台windows的机器情况;

[root@linuxsir01 root]# smbclient -L 192.168.0.8

added interface ip=192.168.0.1 bcast=192.168.0.255 nmask=255.255.255.0

added interface ip=192.168.0.2 bcast=192.168.0.255 nmask=255.255.255.0

session request to 192.168.0.8 failed (Called name not present)

session request to 192 failed (Called name not present)

Password:

Anonymous login successful

Domain=[MSHOME] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

Sharename Type Comment

--------- ---- -------

Error returning browse list: NT_STATUS_ACCESS_DENIED

Server Comment

--------- -------

LINUXSIR02

LINUXSIR03

Workgroup Master

--------- -------

MSHOME LINUXSIR03

具体说明的是什么,如果您不理解,请查看man或者其它资料。以后我在此文件中慢慢的补充吧。。

2.我们在windows的网络邻居上。添加网络邻居。前提是要以win02用户在windows机器上登入。然后。。。。

在网络邻居的位置中输入\\linsir01\win02。这样就行了。。。

win03呢。也是一样的。。。也必须在windows机器上以win03登入。

输入用户名和密码就行了,下次,我们再登录查看时,就不再需要输入用户名和密码了,这是在win2000里的;如果在win98中,因为系统只是提示密码。如果用户名和密码和linux上机器的win02或者win03的用户对不上,就没有办法登入。当然windows 98的用户win02想查看linux机器win02的文件夹的内容,在windows下必须以win02登入。

访问linux的share文件夹呢,我们也一样这样在网络邻居中输入

\\linsir01\share

这个咱们在前面已经说过了,作何人都有读写以及执行的权限。也就是说完全共享的。windows或者linux的用户,无论谁都有权限操作这里的任何文件。

那linux的机器如何查看windows机器上的共享文件呢。有时间我再来写一下,不过还是用下面这个软件比较方便。。

LinNeighborhood-0.6.2-1.i386.rpm

这个包,是我在Redhat 8.0 下编译的。在Redhat下应该没有任何问题。

下载后,解压和安装

#tar zxvf L*.tar.gz

#rpm -ivh LinNeighborhood-0.6.2-1.i386.rpm

运行命令,应该是

#LinNeighborhood

多后就是点几下鼠标,设置一下就行了。试一下也没有什么难的。


作者:无 来源:无
】【关闭窗口
·上页:
·下页:
·当前位置: 库库中文网 · 系统编程教程 · 程序综合
相关文章
     系统编程教程 - 程序综合
普通教程javascript正在成为Ruby杀手
普通教程循序渐进学Python之函数初步掌握
普通教程Delphi/C++Builder产品路线图
普通教程Delphi 2009 界面截图
普通教程LINQ——语言级集成查询初步掌握
普通教程运用Perl常规表达式进行匹配
普通教程循序渐进学Python之循环语句(1)
普通教程循序渐进学Python之数值类型(一
普通教程C# 4.0 地4个新特性
普通教程新型地编制程序语言:eC
普通教程循序渐进学Python:三种选择语句
普通教程循序渐进学Python:IDLE地运行、
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光