samba PDC.docx
- 文档编号:29537539
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:13
- 大小:21.40KB
samba PDC.docx
《samba PDC.docx》由会员分享,可在线阅读,更多相关《samba PDC.docx(13页珍藏版)》请在冰豆网上搜索。
sambaPDC
本文基于《GNU自由文档许可证》发布,可自由随意复制,但请保留作者版权信息以及文章完整性
前言:
SAMBA作为一个伟大的工具,提供了我们WINDOWS和LINUX互访等应用的完美解决方案.正如我之前所设置的SAMBAPDFSERVER一样,其强大之处以及给大家带来的方便,这里我就不多说了.
本文我和大家分享一下利用SAMBA做PDC的经验,其实大家以前或许配置过,网上也好多类似的文章,但是我觉得都不是好详细或者好实用,所以自己研究了一下,并把过程整理成此文,本文提到的文件服务器能很好的做到用户认证,文件和文件夹的权限控制等,希望对你有所帮助.
A.安装SAMBA
1。
如果你在安装LINUX系统时候并没有选择安装SAMBA的话,你可以从Fedora的光盘中获取RPM包,或者索性就直接在添加和删除程序中选取SAMBA服务器直接安装
rpm-ivhsamba*.rpm
当然你也可以直接到samba的官方网站(http:
//www.samba.org)去下载最新的软件包最新的tar包,
http:
//us1.samba.org/samba/ftp/samba-3.0.0.tar.gz
一般来说你只要下面的方法编译安装即可.
tarzvxfsamba-3.0.0.tar.gz
cdsamba-3.0.0
./configure##可以加?
help加上你需要的参数,具体请参考SAMBA官方文档
make
makeintall
ok!
SAMBA的安装并不是本文的重点,如果遇到什幺问题请大家自行参考相关文档,www.samba.org上有详细的说明文档
B.SMB.CONF配置文件
配置SAMBA服务器的工作并不十分困难,我们只需要修 /etc/samba/smb.conf这个配置文件便可以完成,当然如果你不习惯字符界面或者直接编辑配置文件,你可以使用SWAT,WEBMIN等图形化的界面去配置,文中我们也将提到SWAT.
现在让我们来看看实现PDC的smb.conf的配置文件的内容
[global]#SAMBA的全局变量
workgroup=ec-#此参数定义我们的DOMAINNAME为ec-
netbiosname=ec-baseDC
#你可以指定你sambaPDC的netbios名字,netbios相信大家都很耳熟了吧,没错了,客户端通过windows的网络邻居浏览时看到就是我们这里设置的名字.如果你没有设置这个参数,SAMBA将自动将此参数的值设置为你网络名称.
doscharset=cp936#设置客户端显示为简体中文,不然会乱码
unixcharset=cp936
serverstring=ec-PDC#网上邻居中客户端所看到对此服务器的描述
socketoptions=TCP_NODELAYIPTOS_LOWDELAYSO_SNDBUF=8192SO_RCVBUF=8192
#socketoptions选项设置调整TCP/IP性能。
一般来说默认即可
oslevel=64#OS级别比如windows95为1?
98为16?
2000为32,2003好象是64,这里我们的级别比局域网内其它OS的级别更高应该"更高",由于域内只有2000,我这里设置64
preferredmaster=yes#竞选首服务器,也就是说如果LAN内存在其它服务器,Samba为首选的一个
localmaster=yes#指定samba为维护局域网机器列表的本地主浏览服务器
domainmaster=yes#指定samba作为主域服务器
addmachinescript=/usr/sbin/adduser-n-gmachines-cMachine-d/dev/null-s/bin/false%u
##自动为进来的客户机建立它们的机器信任账号,否则需要手工加入,如我们新增加一台BECKS的机器到域中
useradd-n-gmachines-cMachine-d/dev/null-s/bin/falseBECKS$
passwd-lBECKS$#锁定密码
smbpasswd-a-mBECKS#这里不需要输入$符号
#特别注意这里机器名后面的美元符号;这是必需的,LINUX系统将该项标识为信任帐户
security=user#服务器适用的安全模式,这里我们选择user,让SAMBA对登陆者的身份进行认证和管理,不要被AD和DOMAIN参数迷惑
encryptpasswords=yes#对密码进行加密
unixpasswordsync=yes#是否同步SAMBA与UNIX/LINUX的密码
passwdprogram=/usr/bin/passwd%u#同步密码的程序和参数
passwdchat=*New*UNIX*password*%n\n*Retype*new*UNIX*password*%n\n*Enter*new*UNIX*password*%n\n*Retype*new*UNIX*password*%n\n*passwd:
*all*authentication*tokens*updated*successfully*
domainlogons=yes#管理域登陆
logfile=/var/log/samba/log.%m#设置日志的路径以及文件名,%m表示日志文件名以客户端NetBios名来命名.
loglevel=2#日志级别
maxlogsize=50#限制日志大小防止挤暴/var
hostsallow=127.0.0.1192.168.1.0/255.255.255.0#允许连接的网段.不设置为允许全部网段.
logonhome=\\%L\%U#与[homes]成对应关系
logondrive=Z:
#将用户的/home目录映像成Z盘
logonscript=logon.bat#设置用户登陆时运行的脚本
logonpath=\\%L\profiles\%U#设置用户的漫游文件的路径,下面必须设置[profiles]的共享项
##大家看到这或许有疑问,这个文件是怎幺产生的?
用户少的时候,我们还可以手工进行配置多的话,不是累死?
这里我提供一个完美的解决方案,对了不是我提供,应该说是SAMBA和伟大的LINUX!
我们可以通过preexec参数配置SAMBA,让此文件自动生成.
其参数的语法为:
preexec=script-name
这里我们需要一个脚本来实现我们的需求:
#!
/bin/sh
USER=$1
If[!
?
d/home/samba/profiles/$USER]
Then
Mkdir?
m0700/home/samba/profiles/$USER
Fi
然后保存为/home/samba/mkprofile并设置为755,以便任何用户都可以执行,
接着我们将在[homes]中来配置preexec.
[homes]
comment=%U的Home目录#出现在网上邻居的注释
browseable=no#设置为不能浏览,即只有用本用户帐号登陆后,才能在网上邻居看到该文件夹
writeable=yes#设置可以写入
preexec=/home/samba/mkprofile%U#自动生成profile
createmask=0700#用户在此目录下创建的文件UMASK0700即本人对文件具
有读,写,执行的权限,同组或者其它用户无任何权限
directorymask=0700#从安全性出发,这里我们把此目录下的文件夹权限也设置成0700
[profiles]#与上面的logonpath对应
path=/home/samba/profiles
writeable=yes
browseable=no
createmask=0600
directorymask=0700
[netlogon]
comment=网络登陆脚本#注释
path=/home/samba/netlogon#网络登陆脚本的路径
readonly=yes#设置为只读
writelist=root#只有ROOT才能写入
browseable=no#不出现在共享浏览列表,也就是其不会在网上邻居共享列表中列出
[Mis]
path=/home/mis#共享文件的实际路径
createmask=0770#这2个参数设置文件和目录的0770,这样在此共享下创建的文件或者目录创建者和创建者所在的主要组成员对文件具有读,写,执行的权限,而其它用户则无任何权限
#directorymask=0770
validusers=@mis#有效用户,可以设置那些用户有权限读取该共享,@后面加组名,则设置那个组对此文件有权限.这里我们只允许mis组的用户登陆,这个对各个文件夹的权限控制好重要
writable=yes#可以写入
forcegroup=mis#设置在此目录下创建的文件及文件夹都强制为mis组所有
##为什幺要这样设置?
原因很简单:
用户的主要组不大可能和其它用户的主要组
一致,通过forcegroup就能解决一个文件被修改后,同组但是不同主要的用户可
以读写,举个例子:
becks属于MIS组,但是他的主要组是ecbase,如果没有
forcegroup这个参数,那幺根据我们前面设置的createmask=0770和
directorymask=0770,虽然becks创建的文件demo.txt允许同组的人进行读
写,但是你只要ls?
al就可以发现,该文件的组是ecbase而不是MIS,所以在
此目录下mis组的人员并没有权限去读写此文件,而forcegroup=mis就帮我
们解决了这个问题
[HR]
path=/home/hr
createmask=0770
directorymask=0770
validusers=@hr#只允许hr组的用户登陆,这个对各个文件夹的权限控制,这个参数好重要,它能很好的帮助我们对文件权限进行控制
writable=yes
forcegroup=hr
配置文件就说到这里,现在需要根据配置文件建立相应的文档
groupaddmachines
mkdir-m0775/home/netlogon
mkdir/home/samba
mkdir/home/samba/profiles
chmod777/home/samba/profiles
添加管理员帐号
首先添加的是root帐户,把root加入到smb帐号中
smbpasswd-aroot
客户端加入域需要管理员的帐号加入域的权限,就像WINDOWS2000DOMAIN上的ADMINISTRATOR
添加普通用户
useraddbecks
passwdbecks
smbpasswd-abecks
重新启动SMB服务!
这是使我们配置生效的重要步骤!
OK!
SambaPDC的配置以及帐号都建立了.
现在你唯一要做的是将客户机加入到域中。
客户端的设置,这里就不在多说了,
但是由于XP加入SAMBADOMAIN的时候需要修改注册表,先将步骤写出
c.配置WindowsXP客户端:
说明:
只有WindowsXP-ProfessionalEdition能加入域,WindowsXP-HomeEdition不适用.
步骤
1)首先确认你的 工作组与服务器一致,并配置好正确的 IP和主机名
2) 修改注册表,打开注册表编辑器,修改一下选项
注:
一般只要修改a)项即可,如果不能加入,再试行修改b)和执行3)
a) RequireSignOrSealRegistry修改
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\netlogon\parameters
"RequireSignOrSeal"=dword:
00000000
b)使用注册表编辑器修改HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System\CompatibleRUPSecurity的DWORD值为1
3)使用组策略编辑器 gpedit.msc
启用 电脑设置\管理模板\系统\用户配置\不检查RoamingProfile文件夹的用户的所有权
4)修改前面3项后,剩下的就和2000加入DOMAIN的步骤一样了
5)重启电脑让所有配置生效!
2.如果你觉得手工配置太麻烦,可以直接使用 /usr/share/doc/samba-3.0.0/docs/Registry/WinXP_SignOrSeal.reg
d.相关技巧:
1.为了使用户现有的配置文件可以得以使用,你可以将用户现在正在使用的 配置文件COPY到服务器PROFILE下,这样他们又可以使用回自己熟悉的桌面等环境
2.如果希望用户可以 自行安装软件或者修改客户端系统配置,可以将该 SAMBA用户加入本机的管理员组中,方法与AD下相同
3.缺陷:
在密码修改方面,笔者试过直接在WINDOWS提供修改密码的程序界面中修改,发现并不能成功修改,如果你发现有什幺好的解决方法,请与我和大家分享!
4.如果你不习惯用字符来配置SAMBA服务的化,你可以通过一些图形界面的软件来帮助你简化配置的过程,这里我们来讲讲SWAT
swat(sambawebadministrationtool),顾名思义,它是一款帮助用户从WEB界面去管理SAMBA的软件.从而简化用户直接编辑SMB.CONF文档的过程.
你可以从你的光盘中直接RPM安装,安装完毕后,swat默认是关闭的,你需要修改 /etc/xinetd./swat文件,下面我们来看看这个配置文件!
serviceswat
{
port=901#其服务的端口
socket_type=stream套接类型
wait=no
only_from=127.0.0.110.1.3.11#这里你可以设置你允许连接SWAT的IP
user=root#这里是登陆管理的用户,默认是ROOT
server=/usr/sbin/swat
log_on_failure+=USERID
disable=no#将系统默认的’yes’修改为no,开启SWAT服务
}
也许有读者会问,SWAT通过WEB页面登陆,那我不是还要配置apache服务器,这点你不用当心,由于swat有自己的内嵌的web服务器,启动swat不必启动apache服务器.修改配置文件并保存后,请重新启动你的xinetd文件
#servicexinetd restart
这时候,你就可以通过你的浏览器来连接SWAT服务,输入http:
//10.1.3.210:
901
(SAMBA服务器的IP,记得加入901端口),就会出现以下的登陆界面,因为我们在配置文件中设置user=root,这里我们使用root的帐号登陆SWAT,输入帐号密码
以下就是SWAT的配置界面
它有基础与高级2个配置界面,一般新手的话可以选择基础选项,如果你想对SAMBA的一些高级参数进行编辑,那幺你可以选择高级选项.OK!
具体的配置这里就不说了!
自己琢磨一下吧!
但是由于swat不使用加密连接,安全起见笔者建议尽量不要远程使用swat工具.
为Samba服务配置一个回收站。
在Windows中用户删除文件,默认情况下文件会被放到回收站中以防止用户误删除文件,但如果用户是通过网络访问Windows共享目录时,删除的文件是不会放到回收站中。
Samba服务提供的回收站,可以解决这样的问题,当用户访问通过Samba服务配置的共享目录时,可以将用户删除的文件放到回收站中防止误操作。
为Samba服务配置回收站时,需要针对每个共享资源进行配置。
在下面的例子中将为Samba服务的共享“test”配置一个回收站。
[test]
comment=SambaShare
path=/test
writable=yes
#以下参数用于配置回收站。
vfsobject=recycle
recycle:
repository=.deleted/%U
recycle:
keeptree=Yes
recycle:
versions=Yes
recycle:
maxsixe=0
recycle:
exclude=*.tmp|*.mp3
recycle:
noversions=*.doc
在Samba配置回收站功能中各参数作用如下。
(1) vfsobject=recycle:
载入Samba用于回收站功能的模块recycle.so。
(2) recycle:
repository=.deleted/%U:
回收站的相对路径,这个选项指定删除的文件将被储存在什么目录,即回收站的路径,该路径与共享资源的实际路径有关。
在上面的例子中,共享“test”的实际路径是“/test”,因此任何被删除的内容都被移动到这个目录下的.deleted目录下,%U变量表示当前浏览共享用户的用户名,因此每个用户删除的文件都会存放在以他用户名命名的目录下。
比如当用户“user1”访问该共享删除的文件将被保存到“/test/.deleted/user1”目录中。
此参数只能使用相对路径。
所配置的目录其他用户必须有写权限。
当有文件需在放入此目录时,如果出现问题Samba服务器会将相关情况写入日志,并继续对文件的删除操作。
(3) recycle:
keeptree=Yes:
在将文件移入回收站时,要建立相对应的目录结构。
(4) recycle:
versions=Yes:
如果在回收站所在目录中存在同名文件,则以“Copy#xof”文件名的形式加以区分。
(5) recycle:
maxsixe=0:
回收站的最大使用空间,单位为字节。
“0”表示没有最大使用空间的限制。
(6) recycle:
exclude=*.tmp|*.mp3:
不放入回收站的文件类型。
(7) recycle:
noversions=*.doc:
如果在回收站所在目录中存在同名文件,覆盖原有文件的文件类型。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- samba PDC