windows机器:
IP:192.168.1.1601
机器名:daimin-24dc73d3
共享文件夹:c:/sbmshare
linux机器:
IP:192.168.160
1、安装配置
需安装所有samba相关的rpm包
samba daemon samba服务器的主软件包
samba-client samba客户端工具
samba-common samba相关的工具和库文件包
samba-swat samba本机基于web的图形化samba配置工具
#rpm -ivh samba*.rpm然后回车即可完成安装
安装好后检查软件包是否安装
#rpm -qa samba
如果安装了就会返回软件的包名,例如
[root@localhost ~]# rpm -qa samba*
samba-common-3.0.10-1.4E.2
samba-3.0.10-1.4E.2
samba-client-3.0.10-1.4E.2
samba-swat-3.0.10-1.4E.2
2、相关命令的学习
smbtree
作用:显示局域网种的所有主机的共享列表
用法:smbtree [-b](广播)[-D](域或工作组名)[-U username%password]
默认会使用当前用户搜索主机
[root@localhost ~]# smbtree -b
Password:
WORKGROUP
//DAIMIN-24DC73D3
MYGROUP
//LOCALHOST Samba Server
//LOCALHOST/ADMIN$ IPC Service (Samba Server)
//LOCALHOST/IPC$ IPC Service (Samba Server)
//LOCALHOST/sharename Share a directory
nmblookup
作用:显示一台主机的 netbios主机ip地址
[root@localhost ~]# nmblookup daimin-24dc73d3
querying daimin-24dc73d3 on 192.168.1.255
192.168.1.101 daimin-24dc73d3<00>
[root@localhost ~]# nmblookup /*
querying * on 192.168.1.255
192.168.1.160 *<00>
192.168.1.101 *<00>
smbclient
作用:显示/登陆局域网中的共享主机
用法:smbclient -L host -U username%passwd
smbclient //host/share
下面试验:如果host是IP的话,就会报session request to 192 failed (Called name not present)错误,但是也显示了windowns下的sbmshare共享文件
[root@localhost opt]# smbclient -L //192.168.1.101/ -U administrator --#以管理员身份显示192.168.1.101 xp主机共享内容
Password: <--输入主机管理员密码回车
Domain=[DAIMIN-24DC73D3] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Sharename Type Comment
--------- ---- -------
E$ Disk IPC$ IPC D$ Disk smbshare Disk
F$ Disk ADMIN$ Disk C$ Disk session request to 192.168.1.101 failed (Called name not present)
session request to 192 failed (Called name not present)
Domain=[DAIMIN-24DC73D3] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Server Comment
--------- -------
Workgroup Master
--------- -------
如果host是机器名的话,就不会报上面的错误,也显示了windowns下的sbmshare共享文件
[root@localhost opt]# smbclient -L //daimin-24dc73d3/ -U administrator --#以管理员身份显示192.168.1.101 xp主机共享内容
Password: <--输入主机管理员密码回车
Domain=[DAIMIN-24DC73D3] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Sharename Type Comment
--------- ---- -------
E$ Disk IPC$ IPC D$ Disk smbshare Disk
Domain=[DAIMIN-24DC73D3] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
F$ Disk ADMIN$ Disk C$ Disk
Server Comment
--------- -------
Workgroup Master
--------- -------
看到daimin-24dc73d3主机存在一个smbshare共享目录,那我们现在进入这个目录,如下命令
[root@localhost opt]# smbclient //192.168.1.101/smbshare -U administrator
Password:
Domain=[DAIMIN-24DC73D3] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: /> ls
. D 0 Sat Dec 13 09:20:47 2008
.. D 0 Sat Dec 13 09:20:47 2008
samba-3.0.10-1.4E.2.i386.rpm A 13939367 Tue Aug 30 10:24:11 2005
samba-client-3.0.10-1.4E.2.i386.rpm A 2673486 Tue Aug 30 10:24:12 2005
samba-common-3.0.10-1.4E.2.i386.rpm A 5287432 Tue Aug 30 10:24:12 2005
samba-swat-3.0.10-1.4E.2.i386.rpm A 6853830 Tue Aug 30 10:24:14 2005
40958 blocks of size 2097152. 16290 blocks available
注意出现smb:/>说明登陆成功了(风格比较象ftp),可以输入help命令查看smb客户端工具的命令集:)
smb: /> help
? altname archive blocksize cancel
case_sensitive cd chmod chown del
dir du exit get hardlink
help history lcd link lowercase
ls mask md mget mkdir
more mput newer open print
printmode prompt put pwd q
queue quit rd recurse reget
rename reput rm rmdir setmode
stat symlink tar tarmode translate
vuid logon !
输入q推出smb客户端。
smbmount
作用:远程挂载共享目录
用法:smbmount //host/share /mountpoint -o username=username%passwd
例如:要将daimin-24dc73d3主机的smbshare共享目录挂载到本机的/mnt下,命令如下
smbmount //daimin-24dc73d3/smbshare /mnt/ -o username=administrator%coffey
(也可以写成:mount -t smbfs -o username=administrator%coffey //daimin-24dc73d3/smbshare /mnt/)
稍等就挂载好,然后就能像访问本地目录一样访问了,ls /mnt 看看
如果要卸载共享目录那就用smbumount /mountpoint(umount /mountpoint也可以)即可
例如:卸载刚才挂载的目录smbumount /mnt(也可以umount /mnt)回车就okey了。
smbtar
作用:远程打包共享主机中的文件即远程备份网上邻居种的文件(需要稍作修改)
用法:smbtar -s server -u user -p password -x sharename -t output_file
这样照成如果一个共享目录匿名没有权限,那打包的时候打包文件大小为0kb。
解决方法:只要用编辑器打开/usr/bin/smbtar然后移动到该文件的倒数第二行,将里面的-N参数去掉即可。即:改为
eval $SMBCLIENT "'$server//$service'" "'$password'" -U "'$username'" /
-E $log -D "'$cdcmd'" ${clientargs} /,然后保存退出即可。以后的版本貌似修复了这个bug :)
smbtar -s 192.168.101 -u administrator -p coffey -x smbshare -t smbshare.tar
上述命令执行之后,在linux系统下的命令执行当前路径下会产生smbshare.tar文件
参考网页:
http://www.centospub.com/bbs/archiver/?tid-1307.html
http://www.lslnet.com/linux/dosc1/28/linux-226351.htm
3、在Windows中以及在linux中访问Linux Samba服务器共享文件的配置
第一步: 更改smb.conf
配置一个让所有用户可以读写一个Samba 服务器共享的一个文件夹
[root@localhost ~]# cd /etc/samba
[root@localhost samba]# mv smb.conf smb.confBAK
然后我们来重新创建一个smb.conf文件
[root@localhost samba]#touch smb.conf
然后我们把下面这段写入smb.conf中;
[global]
workgroup = WORKGROUP
netbios name = daimin-24dc73d3
server string = Linux Samba Server TestServer
security = share
[linuxsir]
path = /home/share
writeable = yes
browseable = yes
guest ok = yes
注解:
[global]这段是全局配置,是必段写的。其中有如下的几行;
workgroup 就是Windows中显示的工作组;在这里我设置的是LINUXSIR (用大写);
netbios name 就是在Windows中显示出来的计算机名;
server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;
[linuxsir] 这个在Windows中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里我设置为可写;
browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable=no
guest ok 匿名用户以guest身份是登录;
第二步:建立相应目录并授权;
[root@localhost ~]# mkdir -p /home/share
[root@localhost ~]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
注释:关于授权nobody,我们先用id命令查看了nobody用户的信息,发现他的用户组也是nobody,我们要以这个为准。有些系统nobody用户组并非是nobody ;
[root@localhost ~]# chown -R nobody:nobody /home/share
第三步:重新启动smbd和nmbd服务器;
[root@localhost home]# /etc/init.d/smb restart
Shutting down SMB services: [ OK ]
Shutting down NMB services: [ OK ]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
--查看smbd所占用的端口是139和445
[root@localhost home]# netstat -tlnp |grep smb
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 10441/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 10441/smbd
[root@localhost home]#
第四步:查看smbd进程,确认Samba 服务器是否运行起来了;
[root@localhost home]# pgrep smbd
10441
10442
[root@localhost home]# pgrep nmbd
10446
第五步:访问Samba 服务器的共享;
在Linux 中您可以用下面的命令来访问;
smbclient -L //192.168.1.160
Password: 注:直接按回车
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.10-1.4E.2]
Sharename Type Comment
--------- ---- -------
linuxsir Disk
IPC$ IPC IPC Service (Linux Samba Server TestServer)
ADMIN$ IPC IPC Service (Linux Samba Server TestServer)
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.10-1.4E.2]
Server Comment
--------- -------
DAIMIN-24DC73D3 Linux Samba Server TestServer
Workgroup Master
--------- -------
WORKGROUP
显示该共享文件夹下的文件:
[root@localhost init.d]# smbclient //192.168.1.160/linuxsir -U root
Password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.10-1.4E.2]
smb: /> ls
. D 0 Sat Dec 13 15:30:53 2008
.. D 0 Sat Dec 13 08:20:28 2008
daimin.txt 31 Sat Dec 13 15:30:53 2008
40304 blocks of size 262144. 28866 blocks available
在Windows中,您可以用下面的办法来访问;
//192.168.1.160/linuxsir
结果显示:有一个daimin.txt文件
参考网页:
http://www.linuxsir.org/main/?q=node/158#3.1
samba查找用户
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章