Samba的基本配置

http://blog.csdn.net/xiaoxxcool/article/details/3017569
分类: LINUX 2008-10-0514:37  119人阅读  评论(0)  收藏  举报
1.Samba简介:
Samba主要用做Linux/UNIX系统向Windows客户提供共享服务,它可以做到当Windows访问Linux的文件或打印机的时候,可以像访问其他Windos一样直接用//ip地址 或者 //计算机名 的方式来访问。
所以我建议一般的文件服务器都可以使用Linux来做,既稳定,又快速,而且不怕中毒,因为文件服务器有很多客户机往文件服务器上交换文件,现在Windows上的病毒数不胜数,稍微一台机器中毒,极有可能造成服务器感染病毒,这样文件一来往,就会造成整个局域网都中毒了。我以前就碰到过因为文件服务器造成威金病毒泛滥的事情。

Samba服务器不但可以进行文件,设备(打印机,光驱资料…)的共享,而且还可以根据登陆的身份,来提供不同权限的共享资料。并且可以根据用户,显示不同的共享目录,这点好像Windowsserver做不到呢。
当然了,我这里并不是使用Samba做文件服务器,只是想让我的Linux与公司其他机器实现简单的文件共享交换。

现在我们可以用 rpm -qa | grep samba命令来看看服务器有没有安装samba组件,一般安装Linux的时候,最好能够安装上常用的服务,如果没有安装,可以去 http://www.samba.org下载安装。现在最新版好像是samba-3.0.28。RHEL 5.0自带的是samba-3.0.23c-2。
另外,你的Linux的核心要支持smbfs,一般各种发布已经把smbfs的支持包含进去,如果没有包含的话,就要重新编译核心,获得smbfs支持,编译的方法以后会学习到。(*^__^*) 

2.Samba配置:
samba是一个服务套件,安装之后会有一些命令和配置文件,下面我把常用的列出来。

samba会用到的一些命令:
service smb start | restart |stop:这个是系统自带的samba的启动|重启|停止的命令。
smbpasswd:这个是samba用户管理命令。这个命令是把Linux已经存在的用户加入到samba用户里面,来实行权限分配。一定要在系统里存在,已经列在了/etc/passwd里面,否则需要事先用useradd来建立。samba不像vsftp等服务,是直接调用系统的用户。
smbpasswd有很多参数,我们可以用 smbpasswd--?来查看所有参数说明。
程序代码  程序代码
这几个samba用户管理参数主要是root用户才能使用的:
-aUSER        加入用户,输入此命令后,会要求你输入2次密码,以后此用户就一此密码登录samba服务器
-x        删除用户
-n        删除用户密码,这样这个用户以后登录就只需要输入用户名。
-d        禁用用户
-e        启用用户

testparm:每次配置完smb.conf之后,用此命令可以检查一下,有没有配置错误。
smbclient:此命令就是连接smb/cifs服务器的客户端命令。也有很多参数,具体看另外一篇文章。

Samba的几个配置文件:
/etc/samba/smb.conf    这个是samba的主要配置文件。一般的设置都在这里面了。
/etc/samba/smbpasswd            这个是存储samba用户密码的文档,smbpasswd命令的操作体现在这个文档中
/etc/samba/lmhosts            这个是LAN内netBIOSname与计算机对应的文档,有点跟/etc/hosts,但是现在好像不需要配置了,所以也没什么用了。


我们配置samba服务器只要是配置/etc/samba/smb.conf就了以了。
smb.conf文件的共享项目用[name]来开头。

第一个 [global]是必须选项,这个不是共享项目,是全局配置:
程序代码  程序代码
我写的都是默认的文档,如果前面加了;号,别是注释掉了。如果你想配置该项,把前面的;号去掉就可以了。

workgroup =mygroup    #这个是windows下看到此samba服务器的工作组
server string = sambaserver    #这个是在用windos打开samba服务器的时候,标题栏显示的标题。
security =user    #认证等级。
share---不需要提供用户名和密码
user----需要提供用户名和密码,而且身份验证由 sambaserver 负责
server--需要提供用户名和密码,可指定其他机器(winNT/2000/XP)或另一台samba server作身份验证
domain--需要提供用户名和密码,指定winNT/2000/XP域服务器作身份验证
 hosts allow = 192.168.1. 192.168.2.127.         #表示允许访问的IP或者网段。默认前面加了;号,就是注释掉了,表示允许任何计算机。
load printers =yes    #开机的时候就自动共享打印机。
 printcap name =/etc/printcap        #打印机配置文件地址
 printing =cups        #打印机类型
cups options = raw
 guest account =pcguest        #表示来宾帐户名称,既匿名时候的用户权限
log file =/var/log/samba/%m.log        #日志文件地址
max log size =50        #日志文件最大容量,单位为KB。如果是0,表示不做限制。
  password server =<NT-Server-Name>        #指定ip或计算机名,以此台计算机的用户密码为认证服务器。

…………
…………
……下面还有N多参数,不一一列出,自己去看看。


之后就是共享项目了,格式为:
程序代码  程序代码
[共享项目]
指令1 = 参数
指令2 = 参数
指令3 = 参数


比如:
[share]
conmengt = This is a test share
path = /root/test
public = yes
browseable = yes
writable = no
这样就在Linux共享了一个名为“share”的目录了。

下面列出所有共享的指令:
程序代码  程序代码
comment---------注释说明
path------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对
browseable------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
printable-------是yes/否no允许打印
hide dot ftles--是yes/否no隐藏隐藏文件
public----------是yes/否no公开共享,若为否则进行身份验证(只有当security= share 时此项才起作用)
guestok--------是yes/否no公开共享,若为否则进行身份验证(只有当security= share 时此项才起作用)
readonly-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准
writable--------是yes/否no不以只读方式共享当与readonly发生冲突时,无视read only
validusers-----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
invalidusers---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)
readlist-------设定此名单内的成员为只读(用户名/@组名)
writelist------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
veto files = /*.exe/*.com/------限制共享的文件类型(此处限制exe和com这2种文件),支持通配符*和?,每个类型以斜线(/)区分开。
create mask-----建立文件时所给的权限
directory mask--建立目录时所给的权限
forcegroup-----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
forceuser------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
allowhosts-----设定只有此网段/IP的用户才能访问共享资源
allwo hosts = 网段 except IP
denyhosts------设定只有此网段/IP的用户不能访问共享资源
allow hosts=本网段指定IP指定IP
deny hosts=指定IP本网段指定IP


3.配置实例:
这个是我配置samba的实例,摘录如下:

[root@sounix01 ~]# rpm -qa | grep samba
samba-3.0.23c-2
samba-common-3.0.23c-2
system-config-samba-1.2.39-1.el5
samba-client-3.0.23c-2
[root@sounix01 ~]# service smb start
启动 SMB服务:                                                                                        [确定]
启动 NMB服务:                                                                                        [确定]
[root@sounix01 ~]# smbpasswd -a zmt
New SMB password:
Retype new SMB password:
Added user zmt.
[root@sounix01 ~]# ls -l / |grep data1
drwxrwxr-x    14zmt    zmt    4096 01-18 11:41data1
[root@sounix01 ~]# vi /etc/samba/smb.conf
[root@sounix01 ~]# service smb restart
关闭 SMB服务:                                                                                        [确定]
关闭 NMB服务:                                                                                        [确定]
启动 SMB服务:                                                                                        [确定]
启动 NMB服务:                                                                                        [确定]
[root@sounix01 ~]#

其中 vi/etc/samba/smb.conf里面配置了一个名为data1的共享,共享的目录也是/data1,并允许zmt这个用户可以修改,其他用户只能只读。
还有,如果配置zmt可以修改data1共享的时候,必须在Linux下,设置zmt也有对/data1这个目录的修改权限。
Samba的基本配置 - 南太平洋珊瑚礁 - 南太平洋珊瑚礁

下面是smb.conf中[data1]的配置:
[data1]
comment = Sounix Software
path = /data1
public = no
guest ok = no
browseable = yes
writable = no
write list = zmt
最后就可以访问了:
Samba的基本配置 - 南太平洋珊瑚礁 - 南太平洋珊瑚礁

如果用其他Linux计算机访问此共享,那么可以用smbclient或者用mount挂载:
[root@qaeback mnt]# mount -t cifs -o username=zmt,password=zmt//sounix01/data1 /mnt/test
[root@qaeback mnt]# mount | grep sounix
//sounix01/data1 on /mnt/test type cifs (rw,mand)
[root@qaeback mnt]#

附:Samba相关命令

这是《Linux工作日志之:Samba与NFS的基本配置》的补充篇。
因为篇幅有限,所以上篇配置里面不能列出一些命令的详细参数,现在这里这种讲讲。

smbclient
smbclient(samba client)

功能说明:可存取SMB/CIFS服务器的用户端程序。

语   法:smbclient[网络资源][密码][-EhLN][-B<IP地址>][-d<排错层级>][-i<范围>][-I<IP地址>][-l<记录文件>][-M<NetBIOS名称>][-n<NetBIOS名称>][-O<连接槽选项>][-p<TCP连接端口>][-R<名称解析顺序>][-s<目录>][-t<服务器字码>][-T<tar选项>][-U<用户名称>][-W<工作群组>]

补充说明:SMB与CIFS为服务器通信协议,常用于Windows95/98/NT等系统。smbclient可让Linux系统存取Windows系统所分享的资源。

参  数:
    [网络资源]    [网络资源]的格式为//服务器名称/资源分享名称。
    [密码]    输入存取网络资源所需的密码。
    -B<IP地址>    传送广播数据包时所用的IP地址。
    -d<排错层级>    指定记录文件所记载事件的详细程度。
    -E    将信息送到标准错误输出设备。
    -h    显示帮助。
    -i<范围>    设置NetBIOS名称范围。
    -I<IP地址>    指定服务器的IP地址。
    -l<记录文件>    指定记录文件的名称。
    -L    显示服务器端所分享出来的所有资源。
    -M<NetBIOS名称>    可利用WinPopup协议,将信息送给选项中所指定的主机。
    -n<NetBIOS名称>    指定用户端所要使用的NetBIOS名称。
    -N    不用询问密码。
    -O<连接槽选项>    设置用户端TCP连接槽的选项。
    -p<TCP连接端口>    指定服务器端TCP连接端口编号。
    -R<名称解析顺序>    设置NetBIOS名称解析的顺序。
    -s<目录>    指定smb.conf所在的目录。
    -t<服务器字码>    设置用何种字符码来解析服务器端的文件名称。
    -T<tar选项>    备份服务器端分享的全部文件,并打包成tar格式的文件。
    -U<用户名称>    指定用户名称。
    -W<工作群组>    指定工作群组名称。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值