LINUX学习(fn)W记—SAMBA使用?/FONT> |
|
2001-04-06· ·illiad··yesky
|
1 前言Q?/FONT>半个月前开始安装、学?fn)REDHAT LINUX7.0。作Z个Linux新手Q不可避免的遇上了一些问题,通过阅书籍资料Q查看BBSQ自q摸烦(ch)实践Q也解决了一些问题。想到自ql验教训可供他h借鉴Q于是大胆写出来Q一来可以当作学?fn)笔C存,二来希望对刚刚接触Linux的朋友有所帮助。由于本力所限,W记中有所疏漏不也在所隑օQ还请各位高手指正?BR> 一、SAMBA?/FONT>
NetBIOS 是一个ؓ(f)了便于开发基于局域网的资源共享应用程序而设计的API。之后,产生了基于NetBIOS的NetBEUI协议和NBT(NetBIOS OVER TCP/IP)协议。NBT协议q一步发展ؓ(f)SMB和CIFS协议。Windows的局域网默认采用的就是NetBEUI协议Q而SAMBA软g包所使用的就是CIFS协议Q结果就是,装有SAMBA软g包的机器能够和W(xu)indows|络的机器进行通信Q让没有NetBEUI协议的UNIX、LINUX机器在SAMBA的帮助下和W(xu)indows|络׃n资源?BR> 二、SAMBA的安?/FONT>
RedHat Linux7.0的默认安装模式下已经安装好了SAMBA。可以用“rpm -q samba”命令查看系l是否安装了SAMBA以及(qing)安装版本。没有的话,你可以从安装光盘中找到SAMBA的rpm文g手动安装?BR> 三、SAMBA的启?/FONT>
使用?FONT color=#006600>ps -aux|grep smb?/FONT>查看SAMBA服务是否已经q行Q默认是否。用命令?FONT color=#006600>/etc/init.d/smb start”启动它Q或是通过?FONT color=#006600>linuxconf”把SAMBA讑֮为系l启动时启动。具体步骤,q行?FONT color=#006600>linuxconf”,点击?FONT color=#006600>control service activity”,昄的画面如图,点击“sevice control”列表的“smb”,讄启动为“automatic”,“run level”ؓ(f)?”?BR>
|
四、访问Windows客户?BR>
smb启动后,不用作Q何设|你已经可以讉Kq行W(xu)indows的机器了。现在有两台机器Q分别运行着Linux和W(xu)indows98,L名称分别是redhat和lily。lily上有目录?FONT color=#006600>download”,有打印机?FONT color=#006600>HP”,目录讄为“完全访问”,密码是“abc”?BR>
1、访问lily上的׃n目录?BR>
W一步,查看lilyq台机器的的׃n资源Q?FONT color=#006600>smbclient -L //lily”,当提C时Q输入密码后?x)列出lily上可用的资源?BR> W二步,?FONT color=#006600>mkdir /mnt/download?在?FONT color=#006600>/mnt”下建立一个目录?BR> W三步,?FONT color=#006600>mount -t smbfs -o username=abc,password=abc //lily/download /mnt/download”,把lily上的׃n目录挂接到redhat的?FONT color=#006600>/mnt/download”下面。接下来Q你可以象用本地硬盘那栯问该׃n目录了。你也可以编辑?FONT color=#006600>/etc/rc.d/rc.local”,把?FONT color=#006600>mount -t smbfs -o username=abc,password=abc //lily/download /mnt/download”添加到文g的末一行,q样Q系l一启动Q该׃n目录也就挂接好了?BR>
2、用lily上的打印机?BR>
单击d栏上的Gnome图标Q单几Z?FONT color=#006600>system?单击?FONT color=#006600>control panel”。在?FONT color=#006600>control panel”窗口中Q单?yn)L印机图标Q选择?FONT color=#006600>SMB/Window 95/98/NT Printer”,如图?BR>
然后出现讄H口Q如图?BR>

其中?FONT color=#006600>Hostname of Printer Server”应该填上主机名Q这里是?FONT color=#006600>lily”;?FONT color=#006600>Printer name”就是“smbclient -L //lily”显C出来的打印机名Uͼq里是“HP”;“input filter”是让你选择打印机型L(fng)Q如?BR>
可以用类似的型号代替Q比如?FONT color=#006600>lily”上的打印机是HP deskjet1120cQ这里就选择550c/560c/6xxc。这三项是一定要讄的。然后可以测试一下打印机了?BR>
五、让Windows的机器访问Linux
两种方式Q?BR>
1、手工编辑?FONT color=#006600>/etc/smb.conf”文Ӟ
2、用图形介面设|?FONT color=#006600>smb.conf。这里介l后者?BR>
~辑?FONT color=#006600>/etc/xinetd.d/swat?改?FONT color=#006633>disable=yes”ؓ(f)?FONT color=#006600>disable=no??FONT color=#006600>only_from=localhost”ؓ(f)?FONT color=#006600>only_from=10.0.0.39”。说明:(x)该IP地址是我机器的网卡地址Q如果不改,用“localhost:901”不能登录进SWAT理介面。会(x)提示你:(x)?/FONT>A network ettor occured while Netsape was receiving data.
(Network Error:Broken Pipe)Try Connecting again.?BR>
在浏览器中输入?0.0.0.39Q?01”,q入SWATQ如?BR>
W一步,讄?FONT color=#006600>global?其中只要更改?FONT color=#006600>security”类型ؓ(f)?FONT color=#006600>share”,?FONT color=#006600>workgroup”是出现在网l邻居里的组名,?FONT color=#006600>netbios name”是该组中本机的名称Q不讄则用L名。如图?BR>
W二步,讄?FONT color=#006600>shares?如图
先徏立一个新的共享名Uͼ接着?FONT color=#006600>choose share”旁边的按钮Q选择q个׃n名称。设定?FONT color=#006600>path”ؓ(f)?FONT color=#006600>/home/download??FONT color=#006600>guest ok”ؓ(f)?FONT color=#006600>yes??FONT color=#006600>writable”ؓ(f)?FONT color=#006600>yes?最后不要忘了单几Z?FONT color=#006600>commit changes”接受新的设|内容,如图?BR>
在lily上打开|络d可以看到有一个?FONT color=#006600>mygroup”的l,里面有一台?FONT color=#006600>redhat”的?sh)脑Q共享目录是?FONT color=#006600>download”?BR>
xQ一个简单的双向׃n建立h了。当?dng)SAMBA的功能远不至此,更复杂的功能Q有兴趣的朋友可以参看各U资料?BR>
参考以下:(x)
http://www.5ilinux.com/blog/archives/000007.html随着Linux的普?qing)和大众化,Linux下的文g׃n成ؓ(f)用户兛_的首要问题。其实几乎所有的Linux发行套g都提供了一个很好的工具SambaQ可以轻村֮现文件共享?
Samba是基于SMB协议的一个应用程序,目前的版本是2.3.x。Samba的功能很强大Q但易用性也极差。究其原因是它的配置文g太大和不Ҏ(gu)理解Q新手和熟手都对其望而却步。其实仅仅实现文件共享这一单纯目的Q配|Samba很简单,只需熟?zhn)几个操作卛_。下面我用一个例子说明这几个操作?
假设你已熟?zhn)Linux的基本操作,例如VI~辑器的使用、基本的操作文g命o(h)?BR>现在我们有三台PC,一台安装了window2000Q名字是test2000Q其上有׃n文g夹shareQ其余两台安装了LinuxQ一台名字是testsambaQ其上有一目录/pubQ另一台名字是testlinuxQ其上也有一目录/pub。我们要实现的目标是把testsamba上的/pub׃nQ供test2000和test_linux的用?
对test_samba我们q行下面操作Q?/FONT>
?etc/下找到smb.confQ用VI~辑器打开Q?/FONT>
# vi /etc/smb.conf或vi /etc/samba/smb.conf
在【gobal】字D下Q添加netbios记录Q一般加在workgroup记录的下一行;
netbios name = testsamba
在【gobal】字D下Q修改secrity记录;
secrity = share
在【public】字D下Q修改path记录Q?/FONT>
path = /pub
在【public】字D下Q添加geuest ok记录Q?/FONT>
guest ok = yes
删除【public】字D|行行首的“;”标C;
保存退出?/FONT>
单解释一下,d的netbios name是可以在test2000|络d中看得见的机器名Q添加的/pub是可以在|络d中看见的׃n目录Q添加guest ok是允许所有用户都可以guest帐户讉K׃nQ删除“;”标C是要整个【public】字D|为可执行?
现在/pub成为可以被test2000和testlinux两台机器׃n的目录了?
试试看:(x)
在testsamba下,Z用test2000下的׃n文g夹可以进行以下操作:(x)
# smbclient –L //test2000
此命令ؓ(f)查看test2000下的׃n情况Q注意在pȝ要求输入passwordӞ直接回R卛_q入test2000Q此时屏q上列出test2000下的׃n?
此命令可q入test2000的share目录Q屏q上出现MS-DOS的提C符Q\时说明用戯入了share目录。此时可以在提示W后输入“?”查找你可用的命o(h)?
在test2000下,使用testsamba的共享目?pubQ可以进行以下操作:(x)
查找计算机testsambaQ当testsamba目标出现Ӟ双击图标pubQ即q入׃n文g夹pub了?
在testlinux下,使用testsamba的共享目录pubQ可q行如下操作Q(假设已知pub存在Q?
#smbmount //testsamba/pub pub
此命令可把testsamba下的pub挂到本机的pub上,同上在系l要求输入passwordӞ直接回RQ接着依次输入#cd /pub/pub?lsQ屏q即列出testsamba的pub目录下的文g了?
Win2000和Linux实现文g׃n了,单吧Q?BR>
Linux pȝ中的Samba配置 薛龙琴、王汉 |
01-8-8 下午 01:09:04
|
Z实现windows ?Linux以及(qing)其他操作pȝ之间的资源共享,软g商推出nfs 和samba两种解决方式。由于市(jng)Z~Z象pc-nfs那样的客L(fng)工具Q得Linux和windows的资源共享变得复杂。Samba的出现解决了q一问题Q它以其z、实用、灵z配|的特点受到来多Z的广泛关注? |
Windows利用SMB协议来实现操作系l间文g和打印机׃nQ而Samba本n具备SMB协议Q它实现局域网内和W(xu)indowspd计算机的资源׃n?/FONT> |
本文Samba在Linuxpȝ下的配置为重点,讨论局域网内windows ?Linux 的资源共享?/FONT> |
SMB (Server Message BlockQ服务信息块) 协议Q是局域网上的׃n文g/打印机的一U协议,它可以ؓ(f)|络内部的其他windows和linux 机器提供文gpȝ、打印服务。SMB的工作原理是让NetBIOS和SMBq行在TCP/IP之上Q且使用NetBIOS的nameserver让linux机器可以在windows |络d里被览?/FONT> |
Samba是用来实现SMB的一UYӞ由澳大利亚的Andew Tridgell开发,是一U在Linux 环境里运行的自由软g。它可以完成如下功能Q?/FONT> |
文g服务和打印服务,实现Windows和Linux的资源共享?/FONT> |
d服务器,可以作ؓ(f)局域网的服务器?/FONT> |
Samba 有两个守护进E:(x)smbd 和nmbdQ它们是Samba的核心进E。nmbdq程使其他计机览Linux服务器,Smbdq程在SMB服务h到达时对它们q行处理Qƈ且ؓ(f)使用或共享的资源q行协调?/FONT> |
Samba 有两U启动方式:(x)Daemon形式和Inetd形式?/FONT> |
Q?QDaemon形式 建立启动脚本Qrc.samba |
-D 表示以Daemon形式执行Q?d1 表示除错记录U别 |
netbios -ssn stream tcp nowait root /usr/sbin/smbd smbd |
netbios -ns dgram udp wait root /usr/sbin/nmbd nmbd |
Smbclient命o(h)用来存取q程Samba服务器上的资源。其命o(h)形式与ftp怼?/FONT> |
命o(h)语法是:(x)#smbclient [password] [option] |
(1) 解释Qservicename是要q接的资源名Uͼ资源名称的Ş式如下:(x) |
//server/service server 是远E服务器的NetBIOS名字Q对于windows服务器而言Q就是出现在|上d中的名字?/FONT> |
Service是各server所提供的资源的名字?/FONT> |
pssword 是存取该资源所需的口?/FONT> |
option 各种命o(h)选项Q其?-L 用于列出q程服务器提供的所有资?/FONT> |
-I 指定q程服务器的IP地址。此Ӟservicesname 中的NetBIOS名部分将被忽略?/FONT> |
(2)多种smbclient命o(h)Q?/FONT> |
执行smbclient命o(h)成功后,q入smbclient环境Q出现提C符Q?smb:\> |
q里有许多命令和ftp命o(h)怼Q如cd 、lcd、get、megt、put、mput{。通过q些命o(h)Q我们可以访问远E主机的׃n资源?/FONT> |
我们可以利用Samba提供的smbmount命o(h)Q装载其他主机的׃n资源?/FONT> |
Smbmount的命令语法:(x)# smbmount |
其中 servicename 是资源名Qmount-point是安装点?/FONT> |
例如Q?# smbmount "\\server\tmp" -c ' mount /mnt' |
表示Q把名字为“server”的计算Z的共享资源“tmp”的内容装蝲到本地的 /mnt |
卸蝲一个已l装载的SMB文gpȝQ用smbunmount命o(h)Q同时指定要卸蝲的装载点?例如Q?# smbunmount / mnt |
Sambalg的配|文件是 /etc/smb.conf Q该文g几乎包含了SambapȝE序q行时所需的所有配|信息?/FONT> |
配置文g中有比较重要的几个节Q[gloabal]、[homes]、[printers]Q下面分别给与说明?/FONT> |
Q?Q[gloabal]?在全局参数中,参数的设|直接媄(jing)响sambapȝ?/FONT> |
NetBIOS nameQ设|主机名U?/FONT> |
WorkgroupQ用来指定主机所在网l上所属的NT域名或者工作组名称。格式是 |
Workgroup= Nt Domain-Name or workgroup-name |
Server stringQ用来设|本机描qͼ~省?Samba Server |
Host AllowQ它允许讄哪些领域的机器可以访问它的Samba服务?/FONT> |
Load printersQ允许自动加载打印机列表Q而不需要单独设|每一台打印机?/FONT> |
InterfaceQ配|Samba使用多个|络界面?/FONT> |
Domain controllerQ?仅当|络中有一台在安装时设|ؓ(f)d控制器时使用此选项?/FONT> |
SecurityQ?讄安全参数Q定义安全模式。Samba 的安全模式有四种 |
Share?user?server 、domain |
encrypt passwords 、smb passwd fileQ用于适用加密口o(h)? |
smb passwd file = /etc/smbpasswd |
remote announce = 172.18.158.234 172.18.153.55 172.18.153.255 |
server string = Ftp Server |
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 |
log file = /var/log/samba/log.%m |
remote browse sync = 172.18.158.234 172.18.153.55 172.18.153.255 |
printcap name = /etc/printcap |
hosts allow = 172.18.158. 172.18.153. 127. |
当Q何一个客戯问Samba服务器时Q在|络资源中都能出现自qhome目录׃n。其配置如下Q?/FONT> |
comment = Hnnw Directories |
用来指定某一特定用户l或者用h有访问权限的目录配置Q下列参数配|仅有hnnwl的用户有权讉K目录/home/samba?/FONT> |
全局参数“username map”用来控制用h,它允许管理员指定一个映文Ӟ该文件包含了在客h和服务器之间q行用户映射的信息?/FONT> |
如:(x)username map= /etc/smbuser |
用户映射l常在windows 和linux L间进行?两个pȝ拥有不同的用戯̎P用户映射的目的是不同的用户映射成ؓ(f)一个用P便于׃n文g?/FONT> |
# Map Windows admin to root |
QMap the member of developer to studio |
{号左边是单独的Linux账号Q等号右Ҏ(gu)要映的账号列表?/FONT> |
服务器逐行分析映射文gQ如果提供的账号和某行有右侧列表中的账号匚wQ就把它 |
新版本的windows 95以及(qing)windows98、winnt(sp3以上版本)Q在|络传输中仅传递加密口令作为用戯证的信息。这cdh和不支持加密口o(h)q且以user安全U运行的Samba服务器通讯Ӟ?x)出现故障。ؓ(f)了正常的通讯Qsamba服务器用加密口令。下面讨论如何在samba中用加密口令?/FONT> |
(1) 口o(h)文g /etc/smbpasswd |
Z使用加密口o(h)Qsamba 需要一份口令文Ӟ/etc/smbpasswdQ,q且该文件应该和Linux的口令文Ӟ/etc/passwdQ保持同步。下面是生成文g命o(h)Q?/FONT> |
# cat /etc/password | mksmbpasswd > /etc/smbpasswd |
smbpasswd 是需要的口o(h)文g,其权限是0600Q所有者是root |
smbpasswd和passwd文g的记录对应,密码部分不同。密码有两部分组成,每部?/FONT> |
?2?X"Q前部分用于和Lanman通讯Q后部分和W(xu)indows NT通讯?/FONT> |
Root用户可以使用smbpasswd命o(h)为每个用戯定samba口o(h)?/FONT> |
要Samba使用加密口o(h)Q需要在配置文gsmb.conf中加入如下参数?/FONT> |
Smb passwd file= /etc/smbpasswd |
W一行通知samba使用加密口o(h)Q第二行l出口o(h)文g的位|?/FONT> |
修改完配|文件后Q需要重新启动samba服务Q可用如下命令:(x) |
# /usr/sbin/samba restart |
Sambapȝ中用明码口令作接SMB的默认设|。当SMB服务器对协商协议做出响应Ӟ响应信息包含了一位,以说明服务器是否支持询问或者响应加密。随着win95的网l重定向更新E序的发布,Microsoft修改了默认|q样Qwindows客户׃?x)向不支持加密的服务器发送明码口令了?/FONT> |
q里选用W?U解军_法,通过修改注册表来实现。下面对win95/win98、winnt用户分别l与说明?/FONT> |
在注册表中加入下列注册字Qƈ重新启动机器Q?/FONT> |
[HKLM\System\CurrentCntrolSet\Services\VxD\VNETSUP] |
“EnablePlainTextPAssword? dword:00000001 |
修改注册表,加入下列注册表项Qƈ重新启动机器Q?/FONT> |
[HKLM\System\CurrentCntrolSet\Services\Rdr\Parameters] |
“EnablePlainTextPAssword? dword:00000001 |
a. 使用TCP/IP协议作ؓ(f)|络默认通讯协议 |
b. 修改|络配置Q设|文件和打印机共享?/FONT> |
使用命o(h)行下的net.txt工具来查看、用共享资源:(x) |
net use 命o(h)的语法:(x) c:>net use XQ\\servername\sharename |
在这里,XQ是׃n的驱动器盘符Q\\servername\sharename是到׃n的UNC的网l\径?/FONT> |
例如Q?c:\>net use h:\\hey\myfile |
表示Q将hey机器上的myfile׃n资源映射为本地的h?/FONT> |
通过~辑Samba配置文gQ添加需要共享的Linux资源。同时可以设定访问此资源的用L(fng)?qing)其讉K权限。下面是一D例子,本机的 /public/data 目录׃nQ所有h都有d权限?/FONT> |
可以使用smbclient命o(h)Q访问所有的Samba资源。具体用方法见前述?/FONT> |
smbclient Q访问所有共享资?/FONT> |
smbstatusQ?列出当前所有的sambaq接状?/FONT> |
smbpasswdQ修改samba用户口o(h)、增加samba用户?/FONT> |
NmblookupQ用于查询主机的NetBIOS名,q将其映ؓ(f)IP地址 |
TestparamQ?用于(g)查配|文件中的参数设|是否正?/FONT> |

]]>