rss· 投稿· 设为首页· 加入收藏·
当前位置: 火魔网 » 应用技术 » Samba

Linux Samba Server的配置文件解析


阅读提示:在Linux下可以通过Samba客户端访问局域网内的Windows主机,也可以通过Samba服务器给Windows主机提供文件、打印机等服务。 Samba 使用/etc/samba/smb.conf 作为他的的主配置文件,直接修改并不直接生效,直到你在使用了#service smb restart 命令重启Samba服务之后才会生效。 本文就给大家介绍一下如何在Linux环境下架设和配置Samba服务器,为了方便讲述,这里假设Windows主机的计算机名为Peter,设Linux主机的名称为RedHat

一、安装Samba组件

如果选择完全安装Red Hat Linux ,则系统会默认安装Samba组件。我们可以在终端命令窗口输入以下命令进行验证:

[root@ahpeng root] rpm -qa   grep samba

如果结果出现以下所示的4个软件包,则表示已经安装:

samba-client-3.0.23c-2
system-config-samba-1.2.39-1.el5
samba-3.0.23c-2
samba-common-3.0.23c-2

如果没有安装过Samba软件包,则可以插入第1张安装光盘,然后鼠标依次单击“主菜单→系统设置→添加/删除应用程序”菜单项,打开“软件包管理”对话框,在该对话框中找到“Windows文件服务器”选项,确保该选项处于选中状态,然后单击“更新”按钮即可开始安装。

你也可以把第1张安装光盘插入光驱,然后在终端命令窗口输入以下命令:

[root@ahpeng root]# cd /mnt/cdrom/RedHat/RPMS

[root@ahpeng RPMS]# rpm -ivh samba*

[root@ahpeng RPMS]# rpm -ivh system-config-samba-1.2.39-1.rpm

二、Windows主机访问Linux主机

要想让Windows宿主机能够访问Linux虚拟机,就必须在Linux虚拟机上启动Samba服务。在启动之前,还需要对Samba服务的属性进行配置,例如指定Linux虚拟机的共享目录、所在的工作组名称等。

1、配置Samba服务器

在以前版本的Red Hat Linux,我们必须直接修改Samba配置文件smb.conf,或者使用SWAT对Samba进行全方位的设置。Red Hat Linux 9.0新引入了一个图形化的Samba服务器配置工具,可以让我们很方便地对Samba服务器进行配置。

以root用户身份登录系统,单击“主菜单→系统设置→服务器设置→Samba服务器”菜单项,即可打开Samba服务器配置对话框。也可以在终端命令窗口输入“redhat-config- samba”,来访问Samba服务器配置对话框。

首先对Samba服务器的基本设置和安全选项进行配置,单击配置对话框上的“首选项→服务器设置”菜单项,即可打开服务器设置对话框。

基本设置:在对话框的“基本”标签页,我们可以指定Linux主机所在的工作组名称,需要注意的是,此处的工作组名称不一定非得与Windows主机所在的工作组名称一致。

安全设置:然后进行Samba服务器安全设置,这里一共有4个选项。

“验证模式”代表如果Windows主机不是位于NT域里,此处应该选择“共享”验证模式,这样只有在连接Samba服务器上的指定共享时才要求输入用户名、密码;“验证服务器”代表对于“共享”验证模式,无需启用此项设置;“加密口令”选项应该选择“是”,这样可以防止黑客用嗅探器截获密码明文;“来宾账号”代表当来宾用户要登录入 Samba 服务器时,他们必须被映射到服务器上的某个有效用户。选择系统上的现存用户名之一作为来宾Samba账号。当用户使用来宾账号登录入 Samba 服务器,他们拥有和这个用户相同的特权。

添加共享目录:单击Samba配置对话框工具栏上的“增加”按钮。在打开的对话框中的“基本”标签页上,指定(共享)目录为某个存在的目录,例如可以指定/tmp,再指定该目录的基本权限是只读还是读/写。在“访问”标签页上,可以指定允许所有用户访问、或者只允许某些用户访问。

2、启动Samba服务器

打开终端命令窗口,输入“/sbin/service smb start”命令,即可出现以下提示信息,表示Samba服务已经启动。

# /sbin/service smb start

启动SMB 服务 [确定]

启动NMB 服务 [确定]

接下来在Windows里打开“网络邻居”,就可以看到我们刚才设置的Samba服务器了。

三、Linux主机访问Windows主机

安装好Samba之后,就有了与Windows互相访问的基础。这里先介绍一下如何用字符命令方式访问Windows宿主机的共享资源。 1、查询宿主机的共享资源

可以使用“smbclient CL WindowsHostName”命令(此处的WindowsHostName用Windows主机名代替)。本例是要查询Windows主机Peter 上的共享资源,可以在终端窗口输入“smbclient CL Peter”命令,然后回车即可看到Windows主机的共享资源。

2、连接宿主机的共享目录

可以使用“smbclient //WindowsHostName/ShareName”命令来连接Windows主机上的某个共享文件夹,如果该共享文件夹需要用户名和密码,则可以使用“smbclient //WindowsHostName/ShareName CU UserName”命令。例如要连接Windows主机Peter上的共享目录Share,我们可以在终端窗口输入“smbclient //Peter/Share”命令然后回车即可。

如果连接成功,即可出现“smb:>”提示符,在该命令提示符下输入适当的命令,即可对所连接的共享目录进行操作。

Smb支持的命令有大约40个命令,可以很方便地对共享目录进行删除、重命名、切换目录等操作。如果要列出共享目录“Share”下的具体内容,可以使用ls命令。要删除其下的test.txt文件,可以使用“del test.txt”命令。

3、映射网络驱动器

我们知道,Windows下可以将共享目录映射为网络驱动器,这样就可以把共享目录当成本地文件夹来使用。在Linux下可以借助于 smbmount命令来实现,具体的命令参数是“smbmount //WindowsHostName/ShareName /mnt/smbdir”(此处的ShareName指代Windows共享资源名称,smbdir指代挂载点名称)。假设要将Windows主机 Peter下的共享文件夹Share映射为/mnt/WinShare目录,具体步骤是:

首先在/mnt目录下创建一个目录,假设为/mnt/WinShare;

然后打开终端命令窗口,运行“smbmount //Peter/Share /mnt/WinShare”即可。

现在再在文件管理器里打开/mnt/WinShare目录可以看到共享目录的内容,要卸载该映射目录,可以使用umount命令。

4、用Nautilus访问Windows主机

借助Gnome桌面下的文件管理器Nautilus,我们可以用图形界面来访问Windows主机,这里要注意的是Nautilus只是提供访问Windows主机的图形界面,具体的底层操作还是借助于Samba客户端来完成。

四、Samba配置文件smb.conf解析

Samba 使用/etc/samba/smb.conf 作为他的的主配置文件,直接修改并不直接生效,直到你在使用了

#service smb restart

命令重启Samba服务之后才会生效。下面是smb.conf 文件的几个有用参数:

workgroup = WORKGROUP-NAME ##############设置加入工作组名称

server string = BRIEF COMMENT ABOUT SERVER ##############此选项是可选的,主要作用是Samba服务Windows系统注释。

Host allow = 192.168.1. 192.168.2. 127. ##############此项对安全性非常重要.它严格限制了可访问Samba 的范围.默认是允许所有IP访问..

Printcap name = /etc/printcap  ############设置打印机配置文件路径

Load printers = yes  #########是否将打印机共享

Printing = cups  #################打印机的类型.若用的打印机的是linux标准类型的则不要更改

Guest account = pcguest ##################如果想让用户`pcguest`以匿名用户身份登陆..;就去掉前面的注释。并确保在/etc/passwd中有此用户。这里的pcguest可以根据需要改成用户自己设置的本地用户。

Loginfile = /var/log/samba/%m.log ####################log会在此目录中为每个登陆用户(Samba用户)建立不同的日志文件。

Passwd Server = ##################密码验证服务器。当用户从Windows通过Samba使用linux时。全自动传送登陆windows时的用户名与密码给Samba。然后Samba向windows server验证这两项信息是否正确。若不正确,则会出现对话框要用户重新输入用户名与密码。而这个密码服务器可以是NT SERVER(通常是主域控制器)或是另一个Samba Server。 因此若Security = share,则要删除关于密码服务器的那一行。

Password Level -= 8 ##########################密码级别设置

Encrypt password = yes ##############用户密码要加密。由于现在98/NT 皆用加密的密码。因此要有这一项,当然也可以要求使用不加密的密码。

Smb Passwd file = /etc/samba/smbpasswd ############将密码验证服务器,设置为Samba server时,需要用此行来指定要验证的密码文件,这最重要的是密码文件设置的路径。

Uin passwd sync = yes

Passwd program = /usr/bin/passwd %u ##############接下来的两行设置用来容许WIN密码改变后可更新linux系统的密码,确定`encrypt passwords`和`smb passwd file `项被启用。

Pam password change = yes ##############当用户要求更改密码时,使用PAM。不用本地口令程序/user/bin/passwd

Username map = /etc/samba/smbusers ##############在此文件中设置对应的用户名称,例如:root=administrator admin 等,如果每个windows用户在samba服务器中都有账号,则可以不设置,

Include = /etc/samba/smb.conf %m ##############此行允许用户自定义每台计算机的基本配置文件,%M代表NETBIOS正在连接的计算机的称。

Obey pam restrictions = yew ##############当用户认证时,服从PAM的管理限制。

Socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 ##############设置服务器和客户之间会话的Socket选项,此项设置将优化传输速度。

Interfaces = 192.168.12.2/24 192.168.13.2/24 ##############如果用多网络界面须在此列出。

Remote browse sync = 192.168.3.25 192.168.2.255 ##############本行和下一行是远程浏览设置

Remote announce = 192.168.1.255 192.168.2.44

# Browser Control Options 浏览控制选项

local master = no

oslevel = 33

domain master = yes

preferred master = yes

domain logons = yes

logon script = %M.bat ##############本行和下一行设置登陆脚本

logon script = %U.bat

wins support = yes ##############wins server支持

wins server = w.x.y.z ##############wins 客户端设置

wins proxy = yes ##############wins proxy 设置

dns proxy = no ##############dns proxy设置,默认是不为客户端做DNS查询的

[homes] ##############用户访问自己目录的设置

browseable = no ##############用户私人目录,不需要给别人浏览

writeable = yes ##############用户写入自己目录的权限

[netlogon]

guest ok = yes

share modes = no

[profiles] ##############默认profiles设置

[printer] ##############打印机设置

path = /var/spool/samba ##############打印机池(spool)用户须自创建目录

browseable = no ##############此行存放打印机的临时文件

set public = yes to allow user `guest prinr ##############如果设置,则允许guest用户使用打印机

printable = yes ##############用户是否可以打印

[temp]

read only = no ##############是否只读或可写入

public = yes ##############是否共享

配置share级别的服务器

workgroup = linux

hosts allow = 192.168.1. ##############如不想限制可注释掉

printcap = /etc/printcap

load printers = yes

printers = lprng

guest account = abc ##############这需要指定一个用户帐号abc是samba中已存在的一个用户帐号

logfiles = /var/log/samba/%m.log

maxlog size = 50

security = share

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF =8192

##注:其它可能以按smb.conf默认设置

##重启服务

测试samba命令testparm

======================================================================

配置USER 级别的服务器

在share级的基础配置上修改:

security = user

添加:

guest account = zjz

encrypt passwords = yes

smb passwd file = /etc/samba/smbpasswd ##############当配置文件/etc/smb.conf进行user级的设置后需要设置samba密码文件.建立smbpasswd帐号和口令。使其与/etc/passwd的帐号和口令相同。

方法如下:

1:建立本地帐号,生成口令文件夹/etc/passwd,把/etc/passwd里的用户都加到/etc/samba/smppassword文件中

注意:该过程是先在本地建立帐号和密码,然后再把口令文件传给/etc/samba/smbpasswd,顺序不能相反。因本地帐号的口令和samba服务器中的帐号的口令是不相同的。

#adduser zjz

#passwd zjz

#cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

这里的`/etc/samba/smbpasswd和smbpassspwd和smbpasswd file = /etc/samba/smbpasswd`r 路径要相同.

2:利用smbpasswd命令来为刚才建立的帐号设立samba server 口令。

注意:使用smbpasswd 命令修改用户口令时。被修改的samba帐号的本地系统用户帐号须已经存在。

#smbpasswd zjz

重启samba服务。USER级服务器配置完毕。

注意:如果不能实现WIN计算机和Samba资源互访。可以在各自的主机中添加对方的主机名和IP地址,然后再测试:方法如下:

在linux系统/etc/hosts中添加:win-IP Win hostname (192.168.0.11 mywinpc)

在windows系统c:\windows\hosts中添加:win-IP Win―hostname

配置Server级服务器

server级的安全性比USER级更高。在suer级配置的基础上修改:

security = server

添加:

password server = libtserver ##############密码服务器,这里是用win2k主域控制器libserver”来做密码服务器。当然也可以用另一个samba server来做密码服务器。

注释掉smbpasswd file = /etc/samba/smbpasswd

设置完后,用testparm和smbclient命令进行调试。这样当一台win NT/98计算机登陆libserver域服务器时,同时也登陆了Samba Server 上。不过这时的用户帐号和密码在libserver和Samba server 上应该是相同的。如果是已经加入的libserver主域控制器的计算机就可以输入用户帐号和密码来打开Samba Server 的共享文件。其它计算机虽然也和samba server 在同一个网段上,但如果不用libtserver和samba server 共有的用户帐户和密码登陆。就不能访问samba.

顶一下
(0)
踩一下
(0)