Samba(SMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的;大家知道在Windows 网络中的每台机器即可以是文件共享的服务器,也可以同是客户机;Samba 也一样能行,比如一台Linux的机器,如果架了Samba Server 后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba 服务器;我们在Windows网络中,看到共享文件功能知道,我们直接就可以把共享文件夹当做本地硬盘来使用。在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用;这在一定意义上说和FTP是不一样的。
Samba 用的netbios协议,如果您用Samba 不成功,
Linux与Windows 、Linux 和 Linux
1、安装
Samba可以使用liveCD或者yum install安装。
2、查看服务是否已经启动
[mabin@localhost /]$ service smb start
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
smb 是Samba 的主要启动服务,让其它机器能知道此机器共享了什么;而nmb是做解析用的,就是把这台Linux机器所共享的工作组及在此工作组下NetBios的解析出来。
从下面可以看出,smbd是占用的139和445端口。
[mabin@localhost /]$ netstat -tlnp | grep smb
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 13139/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 13139/smbd
3、备份smb.conf文件
Samba服务器的配置文件都位于/etc/samba目录中,服务器的主配置文件是smb.conf;也有用户配置文件 smbpasswd、smbusers和lmhosts等;还有一个文件是secrets.tdb,这个文件是Samba 服务器启动手自动生成的
[mabin@localhost /]$mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
[mabin@localhost /]$ ls /etc/samba
lmhosts passdb.tdb secrets.tdb smb.conf.bak smbpasswd smbusers
4、设置samba服务器能实现匿名读写
[STEP 1]配置smb.conf文件
[mabin@localhost /]$touch smb.conf
[mabin@localhost /]$vim smb.conf
/*全局配置*/
[global]
workgroup = mabin //类似于在Windows中显示的工作组名称
netbios name = mabin-samba //被netbios解析出来的计算机名
server string = samba testserver //服务器说明
security = share //security是登录和验证方式,设置为share可以匿名访问;而如果是user这种验证方式的话,就需要用户名和密码
[mabin] //在Windows中显示出来的共享目录名
path = /var/samba //共享目录的路径
writeable = yes //是否可写
browseable = yes //是否可浏览
guest ok = yes //设置匿名用户以guest身份登录
[STEP 2]建立目录并授予权限
[mabin@localhost /]$mkdir /var/samba
[mabin@localhost /]$id nobody //查看nobody的用户信息,看是否属于nobody用户组
uid=99(nobody) gid=99(nobody) groups=99(nobody)
[mabin@localhost /]$chown -R nobody:nobody /var/samba
[STEP 3]重启smb服务
[mabin@localhost /]$ service smb restart
Shutting down SMB services: [ OK ]
Shutting down NMB services: [ OK ]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
5、使用smbclient命令访问samba服务器的共享
[mabin@localhost /]$ smbclient -L //192.168.1.243 //网上很多资料给出这条命令,但是不能真正的进入命令模式
Password:
Domain=[MABIN] OS=[Unix] Server=[Samba 3.0.33-3.15.el5_4]
Sharename Type Comment
--------- ---- -------
MaBin Disk
IPC$ IPC IPC Service (This is MaBin's Samba server.)
Domain=[MABIN] OS=[Unix] Server=[Samba 3.0.33-3.15.el5_4]
Server Comment
--------- -------
MABIN-SAMBA This is MaBin's Samba server.
Workgroup Master
--------- -------
MABIN
可以看出,192.168.1.243这台服务器有共享目录MaBin
[mabin@localhost /]$ smbclient //192.168.1.243/MaBin //进入共享目录,并在命令模式下对其进行操作
Password:
Domain=[MABIN] OS=[Unix] Server=[Samba 3.0.33-3.15.el5_4]
Server not using user level security and no password supplied.
smb: \>
6、smbclient命令的用法
smbclient –L IP或者NETBIOS名称 //作用是显示某台提供samba服务的服务器上的共享资源
smbclient //IP或者NETBIOS名称/共享资源名 [-U 用户名] //使用网络资源
7、smbclient命令
命令 说明
![shell command] 执行所用的SHELL命令,或让用户进入 SHELL提示符
cd [目录] 切换到服务器端的指定目录,如未指定,则 smbclient 返回当前本地目录
lcd [目录] 切换到客户端指定的目录;
dir 或ls 列出当前目录下的文件;
exit 或quit 退出smbclient
get file1 file2 从服务器上下载file1,并以文件名file2存在本地机上;如果不想改名,可以把file2省略
mget file1 file2 file3 filen 从服务器上下载多个文件;
md或mkdir 目录 在服务器上创建目录
rd或rmdir 目录 删除服务器上的目录
put file1 [file2] 向服务器上传一个文件file1,传到服务器上改名为file2;
mput file1 file2 filen 向服务器上传多个文件
参考资料:
http://www.linuxsir.org/main/?q=node/158$0
http://blog.chinaunix.net/u/16292/showart_358661.html