Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10733884
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: LINUX

2009-03-23 11:31:49

samba的基本使用
 
 
 
最近我把工作平台转为Fedora Core 4,虽然它比不得RHAS和CentOS,但是足够我平时编程使用了。公司大部分同事都是使用Windows 2000/XP,
就连提供数据的服务器都是Windows,可见公司的水平了。唉,没办法。我觉得公司在平台这方面积累的经验不多。为了使我的平台能容合到公司
的大环境中,也为了与其它同事共享文件等的方便,我只能多研究一下samba了。
 samba的作用是提供Unix/Linux与Windows之间的通讯,并使它们之间实现文件/打印机/设备共享,在Windows网络中,设置好samba的Linux机器
可以做服务器也可以做客户端。
       安装以下几个rpm包:
             samba-common-3.0.14a-2
             samba-3.0.14a-2
             system-config-samba-1.2.31-1
             samba-client-3.0.14a-2
             samba-swat
       其中samba-swat是以web页面方式配置samba的前端,system-config-samba-1.2.31-1是X-window下的图形化配置程序,它们的作用都是设定
       /etc/samba/smb.conf这个配置文件,此文件也可手动编辑。
             chkconfig --level 35 smb on
       运行级3,5下,samba服务开机自动加载。
       samba的一些重要组成文件: 
/usr/sbin/smbd SMB服务守护程式 
/usr/sbin/nmbd NetBIOS服务守护程式 
/etc/samba/smb.conf samba主配置文件 
/usr/bin/smbclient 连接到SMB共享的客户端程式 
/usr/bin/testparm 检验smb.conf有效性的脚本 
/usr/bin/smbprint 此脚本可以将打印任务送至SMB主机的打印机 
/usr/bin/smbstatus 列出本地主机的SMB连接 
        smbfs smbfs文件系统,可以将共享文件夹用mount命令挂载至本地。
        samba主配置文件/etc/samba/smb.conf中的主要参数设定: 
        该文件中#为信息注释符 ;为参数注释符 

#======================= Global Settings ===================================== 
[global] 
workgroup = MYGROUP 
工作组名称 
server string = Samba Server 
主机说明 
netbios name = SMBServer 
在网络中的netbios名称,如果没有设定,预设值为HOSTNAME 
hosts allow = 192.168.1. 192.168.2. 127. 
设定哪些ip地址可访问主机 
security = user 
samba的安全级别,从低到高有四级:share/user/server/domain 
share: 任何用户都可以访问服务器上的资源,无须帐号 
user: 需要用户名和密码进行验证 
server: 帐号验证交给另外一个服务器,如交给另一台NT服务器. 
如果递交失败,就退到user安全级. 
domain: 这个安全级别要求网络上存在一台Windows的主域控制器,samba将帐号递交 
给该服务器验证. 
    user/server/domain要求用户在本地linux机器上也有系统帐户,否则不能访问. 
这里只简单介绍一下share/user的用法,详悉设定请参看附录 
encrypt passwords = yes 
使用加密密码 
smb passwd file = /etc/samba/smbpasswd 
存放samba帐户密码的文件 
local master = yes 
samba服务器可以成为本地主浏览器 
os level = 33 
samba服务器的管理等级 
domain master = yes 
该服务器成为域浏览器 
preferred master = yes 
该服务器成为工作组中的首要主浏览器 
#============================ Share Definitions ============================== 
[homes] 
comment = Home Directories 
browseable = no 
writable = yes 
valid users = %S 
create mode = 0664 
directory mode = 0775 
上面是用户家目录的设置 
[printers] 
comment = All Printers 
path = /var/spool/samba 
browseable = no 
guest ok = no 
writable = no 
printable = yes 
打印机设定 
[document] 
comment = daweicheng's document 
path = /tmp/document 
read only = yes 
public = yes 
[samba user guest] 
comment = guest 
path = /tmp/samba 
read only = no 
guest account = guest 

简单介绍一下这里的几个参数: 
comment=xxx 
共享注释,即共享时对方主机能够看到的文件夹名称 
path=/xxx/.../xxx/ 
共享的目录 
read only= yes 
只读属性设定 
public = yes 
公开属性,任何人可以看见该资源,无须帐号 
guest account = xxx 
访问者的帐户名 
这里的参数很容易理解,所以不一一列举了,详细请看附录 
如果你希望任何人都可访问共享资源,需要将Global Settings的安全级设定为: 
security = share 
共享目录参数需要: 
public = yes 
如果希望某些目录只有特定的用户访问,则要将Global Settings的安全级应设定为: 
security = user 
共享目录参数需要: 
guest account = xxx 
这个xxx用户(下例中是NewUser)是用useradd和smbpasswd创建的: 
添加samba用户: 
useradd NewUser 
设定NewUser的samba密码: 
smbpasswd -a NewUser 
使NewUser可以使用samba服务: 
smbpasswd -e NewUser 
testparm可以验证/etc/samba/smb.conf的有效性,回车后会显示samba的参数设定 
设定无误后,重启smb服务,并打开iptables中的tcp 139端口: 
在/etc/sysconfig/iptables中加入: 
#smb(samba) 
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 139 --syn -j ACCEPT 
(加入的位置在REJECT规则之前) 
然后service iptables restart 
重启iptables服务 
查看其他主机的共享资源: 
smbclient -L WindowsHostName 
此处WindowsHostName就是对方的windows主机名 
smbclient //WindowsHostName/ShareName 
可以访问对方主机上的ShareName共享文件夹 
也可以是: 
smbclient //xxx.xxx.xxx.xxx/D$ 
xxx.xxx.xxx.xxx表示对方的ip,D$是对方主机D盘的默认共享名称 
如果访问的资源需要用户名和密码,可以加入-U参数,如: 
smbclient //xxx.xxx.xxx.xxx/D$ -U UserName 
然后按提示输入密码,登录后会得到一个提示符,有些类似于命令行方式的ftp登录. 
挂载共享驱动器: 
可以用smbmount或者mount命令 
smbmount的例子: 
smbmount //WindowsHostName/ShareName /mnt 
这样就将ShareName下的内容挂载在/mnt下了 
也可以用mount命令,例子: 
mount -t smbfs -o username=xxx //xxx.xxx.xxx.xxx/D$ /mnt/ 
如果不正确显示中文,可以在-o参数后加入codepage=936,iocharset=cp936 
即: 
mount -t smbfs -o username=xxx,codepage=936,iocharset=cp936 //xxx.xxx.xxx.xxx/D$ /mnt/ 
卸载共享目录的命令是umount 
在windows中访问samba服务器,可以用网上邻居 
或者在"运行"中直接输入xxx.xxx.xxx.xxx即可 
配置samba也可用redhat-config-samba或SWAT 
使用SWAT需要先设置一下: 
将/etc/xinetd.d/swat中的disable = yes设定为disable = no 
service xinetd restart 
重启xinetd服务 
/sbin/chkconfig swat --level 35 on 
在运行级3,5下让swat服务开机自动加载 
最后,执行chkconfig --list | grep swat 
swat : on表示swat服务已经开启了 
在web浏览器中输入 
以root身份进入配置界面,就可以对smb.conf进行设置了.
 
 
阅读(906) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~