您的位置:首页 > 其它

Samba文件服务器的配置

2013-12-19 20:32 274 查看
Samba文件服务器的配置
一、基本要求:

1、RedHat
Linux 操作系统平台

2、windows操作系统平台(验证用)

3、RedHat Linux安装光盘

“Linux版本没什么太大的要求,基本具备上面这些就可以进行samba文件服务器的配置了。”

二、配置步骤:

1、samba组件安装:

(1)首先用“rpm –qa |grep samba”命令检验系统samba服务是否安装。

# rpm –qa |grep
samba


samba-common-3.0.0.15.i386.rpm

samba-client-3.0.0-15.i386.rpm

samba-3.0.0-15.i386.rpm

(2)如果没有显示samba(版本)信息,则说明没有安装,利用“RedHat
Linux安装光盘”里自带的RPM包进行安装(也可自己在网上下载相关的版本包进行安装)。

# rpm
-ivh samba-common-3.0.0.15.i386.rpm

# rpm -ivh
samba-client-3.0.0-15.i386.rpm

#
rpm -ivh
samba-3.0.0-15.i386.rpm


此外还有一个工具就是图形界面的Swat。
要是用这个工具﹐大家还要修改一处﹐就是﹕

vi /etc/xinetd.d/swat把其中的

disable = yes
改为

disable = no就可以了。

# rpm
-ivh samba-swat-3.0.0-15.i386.rpm


然后开启浏览器输入http://hostname:901

也可以安装redhat-config-samba这个工具。
为了方便远程管理,Webmin也不错(建议安装)

# Samba
config file created using SWA
T

# from 0.0.0.0
(0.0.0.0)

#
Date:
2003/11/19 15:38:38


2、修改samba配置文件:( /etc/smb.conf )

***************Global
parameters******************

#全局配置参数

[global]

#设置工作组或者说是域名。

workgroup = MYGROUP

#网络上看到的计算器名称(samba)。

netbios name = SAMBA

#服务器描述,%v显示Samba版本。

server string = Samba Server %v

#设置samba服务器使用的认证过程。默认为USER,有四个选项:User,Share,Server和Domain。

Security = User

#设置纯文本密码的最少字符数。

min passwd length = 6

#匿名、名称、密码都不正确不准登录服务器。即任何非法用户名登录均被视为gues用户。

map to guest = Bad User

#用户名的映像。

username map = /etc/samba/smbusers

#存放samba密码的路径

smb passed file = /etc/samba/smbpasswd

#samba日志文件的名字和路径。

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

#日志文件的最大尺寸(KB)

max log size = 50

#作为时间服务器。

time server = Yes

#设置连接被视为无效而断开前,未激活状态的时间(MIN),防止资源被无效连接耗费。

deadtime = 5

#网络协议选项,注意不要更改,否则影响网络速度及网络问题。

socket options = TCP_NODELAY SO_RCVBUF=8192
SO_SNDBUF=8192

#用户成功登录时在netlogon共享中运行的批处理文件或者windows命令文件,注意:这一项很重要,还有就是一定要配合下面的[netlogon]共享才能配置出你的PDC﹐%U为自动匹配登录用户的名称。

logon script = %U.bat

#在服务器上保存Windows用户登录时的配置文件路径,%L为Samba匹配服务器名称。

logon path = \%Lprofile\%U

#设定登录时主目录的当地路径。

logon drive = H:

#Samba接受所在组用户以域登录。

domain logons = Yes

#如果要把samba设置为域服务器,浏览器的OS级别一定要高于Windows。这里说名一下:OS级别:windows95为1,98为16,2000为32。

os level = 65

#设置samba试图成为主浏览器。

domain master = Yes

#设置samba为WINS服务器。

wins support = Yes

#超级用户。

admin users = root

#设置新文件权限。

create mask = 0740

#建立新文件时强制权限限制。

force create mode = 0740

#允许用户在NT2000下改变权限。

security mask = 0740

force security mode = 0740

#创建新目录时允许拥有的最大权限。

directory mask = 0750

force directory mode = 0750

directory security mask = 0750

force directory security mode = 0750

#Windows工作方式,只要文件被修改,其时间戳将随时更新。

dos filetimes = Yes

#Samba对文件生成时间作取整处理,计为下1秒,这也是windows工作方式。

dos filetime resolution = Yes

#共享家目录。

[homes]

comment = Home Directories

read only = No

browseable = No

#重要的设置,samba作为域服务器时存放用户登录时执行的文件或脚本。

[netlogon]

comment = Network Logon Service

path = /home/netlogon

write list = root

guest ok = Yes

share modes = No

#用户配置文件存放目录 。

[Profile]

path = /home/profiles

read only = No

create mask = 0770

force create mode = 0770

security mask = 0770

force security mode = 0770

directory mask = 0770

force directory mode = 0770

directory security mask = 0770

force directory security mode = 0770

browseable = No

#打印机共享目录。

[printers]

comment = All Printers

path = /var/spool/samba

printable = Yes

browseable = No

***************************************************************************

注意:

1、Smb.conf其它参数用缺省即可。由于Linux的权限管理没有NT全面,在权限分配较复杂情况下,可以通过两种方式:

A、对一个目录产生多个共享目录,每个目录对相应的用户组分配不同权限。

B、可以和Linux上文件权限相结合。比如:samba共享目录可以给每个人写权限,但Linux上文件权限为只给特定组写权限,则其它人只能读。

2、用户及密码管理:

A、如果encrypt
passwords = yes,用户会有两个密码(Linux,smbpasswd),用户改密码会麻烦,所以我设置为no,samba会用/etc/passwd做用户验证,用户也只维护一个密码,比较方便,但不足够安全,好象unix
password sync = Yes可以既方便又安全,但我没成功。

B、修改/etc/passwd,使用户的shell为/usr/bin/passwd,这样用户想改密码时,telnet到samba服务器即可,其它如sendmail服务器也可以用这种方法。

C、如不想用户的目录出现/GNUstep目录,运行mv
/etc/skel /etc/skel.backup即可。

3、windows98客户端:改注册表。

在HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP中增加一DWORD值:值名:EnablePlainTextPassword 数值:0x01。改windowshosts文件,ipaddree
samba server name

4、过网关:如客户端和samba
server之间有路由器,确保客户端和samba
server在同一workgroup, 客户端编辑windowslmhosts文件,a.b.c.d
samba server的netbios名或主机名。

我现在的做法为:给分公司IT设一个帐号在总部,让他们通过CUTEFTP再通过public目录实现总部和分公司的文件传输。这样可以避免分公司一定要跟总公司在一个域(他们还有NT)。

5、磁盘限额:

例如一百名,设定和 bob 相同的 quota 值,首先以手动编辑 bob 的 quota 信息,然后执行:

# csh

# edquota
-p bob
awk
-F:
$3
> 499 {print $1}
/etc/passwd

这是假设你的使用者 UID 从 500 开始

**********************************************************************************

接下来就要手动在/home下建立目录:profiles,访问权限为0770,组为你想要建立的组﹐比如share用来存放Windows用户的配置文件。

netlogon访问权限为1750,这里加上了sticky选项,不允许其它用户删除目录里的文件,只有超级用户或者建立者才可以,注意sticky选项只对目录起作用。组为share
下面建立/etc/samba下面的smbpasswd文件:

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

为了安全起见﹐设置权限:

# cd
/et
c

# chmod
500 samb
a

# cd
samba


# chmod
600 smbapsswd


接下来大家可以在netlogon目录里建立windows用户的登录脚本,比如批处理文件,需要注意的是,一定要在Windows下面建立,因为如果在Linux下建立,那幺Windows就不会执行Linux的文件。比如有个帐户feixue,批处理文件可以这样:

feixue.bat内容为:

@net time SambaServer /set /yes

@net use H: SambaServerfeixue -y

@regedit -s SambaServer

etlogon*.reg
等。

需要注意的是把批处理文件保存到netlogon下面后一定要检查文件的权限,修正后用户才会执行,不然的话嘿嘿,你有麻烦了﹗﹗﹗

如何配置Windows端登录Samba域,对于98来说很容易,在网络属性里选Client for
microsoft networks,在第一项打勾,下面输入你的Samba服务器的域名(工作组)。重新激活机器以后,邓入对话框就会有三项:用户名、密码、域名。

NT/2000下面登录samba域会困难一点,首先你要在Samba服务器上建立windowsNT/2000机器的信用帐号。

下面以一个计算器名为test的计算机为例:

# useradd
-c 'Test Compter' -d /dev/null -g share -s /bin/false -r
test$
我们创建了一个Linux本地帐号,出于安全的考虑不需要它登录到Linux进行任何操作,因此的用户目录为/dev/null,shell是/bin/false。
然后我们就可以用smbpasswd创建相应的Samba机器帐号:

# smbpasswd -a -m
test
其中-a是添加,-m是机器信任帐号。这样,依据test$的Linux帐号创建了一个NT域的机器信任帐号test。
然后在windowsNT/2000上加入Samba域,根据提示输入超级用户的用户名称和密码,就可以加入Samba域了。
重新激活机器以后,就会有三个选项了,比如用原先建立的用户feixue登入即可。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: