分享
 
 
 

如何架设Samba服务器,用user共享方式

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

一点理论:

在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

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

可能前面写的不太严谨,有可能有的地方不太对。请大家指正。我也会随时修改本帖。

多谢。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有