Samba的基本配置

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

Samba服务器不但可以进行文件,设备(打印机,光驱资料…)的共享,而且还可以根据登陆的身份,来提供不同权限的共享资料。并且可以根据用户,显示不同的共享目录,这点好像Windows server做不到呢。
当然了,我这里并不是使用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用户才能使用的:
-a USER     加入用户,输入此命令后,会要求你输入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内netBIOS name与计算机对应的文档,有点跟/etc/hosts,但是现在好像不需要配置了,所以也没什么用了。


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

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

workgroup = mygroup   #这个是windows下看到此samba服务器的工作组
server string = samba server   #这个是在用windos打开samba服务器的时候,标题栏显示的标题。
security = user   #认证等级。
share---不需要提供用户名和密码
user----需要提供用户名和密码,而且身份验证由 samba server 负责
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 时此项才起作用)
guest ok--------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
read only-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准
writable--------是yes/否no不以只读方式共享当与read only发生冲突时,无视read only
valid users-----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
invalid users---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)
read list-------设定此名单内的成员为只读(用户名/@组名)
write list------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
veto files = /*.exe/*.com/ ------限制共享的文件类型(此处限制exe和com这2种文件),支持通配符*和?,每个类型以斜线(/)区分开。
create mask-----建立文件时所给的权限
directory mask--建立目录时所给的权限
force group-----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
force user------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
allow hosts-----设定只有此网段/IP的用户才能访问共享资源
allwo hosts = 网段 except IP
deny hosts------设定只有此网段/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   14 zmt   zmt   4096 01-18 11:41 data1
[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这个目录的修改权限。


下面是smb.conf中[data1]的配置:
[data1]
comment = Sounix Software
path = /data1
public = no
guest ok = no
browseable = yes
writable = no
write list = zmt
最后就可以访问了:


如果用其他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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值