(C.) 版权:本文为LiKuKu原创,只要承认作者的版权,允许任意转载,但是不得用于商业目的。
1-1-0 艰辛的编译路!
1-1-1.下载这玩意儿时,没太在意,就9MB多点。可完全不是这么简单!
解压完,TMD,有30多MB,进Packaging-RedHat,看Readme特简单,执行 sh makerpms.sh 就ok!
Let`s start it!
... ... ...
1-1-2. 乖乖!足足编译了40分钟,还没完!
我是用CII900 256MB 金邦金条 MSI6199 Maxtor10.2G HDD(hdparm -t 要24.71MB/s)啊!
50分时,卡住了!提示,硬盘不够,满了!
看看它在哪里用硬盘! /var/tmp
MyGod! 用了,7、8百MB了!临时文件一大堆!半成品一大堆!编译信息massage,也是一大堆!
TNND,没见过,这么凶!全干掉!
拉过hda14 ,newfs_xfs一下,挂到/var/tmp 上,2GB 够了吧!
重新开工!我得睡会了!
1-1-3. 一小时20分后,搞定!
到/usr/src/redhat/i386 找到 samba-3.0.0-1.i386.rpm 20MB呢!
本来/usr/src/redhat/还有其他两个RPM 一个是源代码RPM 9.4MB,一个是编译信息RPM 嘿嘿200多MB,
太~~~TMD~~BT!
但对大部分人都没用,SRC么,自己下载最新版不就行了?干掉它们!
你要自己弄,用du查一下目录,就大概可以知道在哪里了。
rpm -ivh samba-3.0.0-1.i386.rpm 一切顺利!
在我的RH9 2.4.20-8 和SGI-XFS RH9 SGI_XFS_1.2.0 /2.4.20-8 都正常安装运行!
2-1-0. 新东西/新truble,开玩笑拉!
2-1-1. 整合!
3.0.0版已经把2.X.X版的nmbd合并到smbd里了!启动时只显示SMB Service [OK] ,用ps -ax 只显示smbd -D 守护进程。
2-1-2. SWAT配置!
强烈建议,用SWAT配置!并且用Advanced/高级模式,这样会很快发现、适应好多新功能!何况还有在线帮助,
很详细的。很实用!例子很多哦!
注意,用swat,先把
/etc/xinit.d/swat 里的 disable = yes 改为no ; 注释掉only_from = localhost
打开浏览器,键入 本机IP:901 在验证了root 和密码后就OK了!
2-2-1. 变化了的smb.conf 配置
2-2-2. 多语言设置
我发现,直接将2.X.X版的配置好的smb.conf拿来用不行,尽是乱码!
先说明一下,我用的是中文服务器注释,目录的共享名也是中文。没法,谁让我这以前的Win2kS就这样呢!为了兼容以前的设置,
只好还是用中文了!要不然,就要把100多客户机的"网络驱动器映射"参数全一台台改一遍???!!
后来,发现用swat,在Globals中,第一项,就是dos charset dos文件编码设置 ,这不就结了么!
简体中文改cp936或者gb2312,繁体中文改cp950,希腊文改cp737,冰岛语改cp861,西里尔/俄文字母改cp866,
朝鲜/韩文改cp949,日语改cp932。
当然,要是想自己写smb.conf文件,只要在Globals 里加一行 dos charset = cpxxx就好了!
如果重启SMB后,还是乱码,最好用vi把smb.conf 里的中文重写一遍,重启SMB就OK!
*注:如果你是用2.x版的,那在smb.conf 里写好中文内容以后,可以直接显示中文。在Win9X,Win2K下都可以正常显示中文,
但是在WinXP下却是乱码! 只有你在Globals段添加以下内容:
coding system = cp
client code page = 963
code page directory = /usr/share/samba/codepages
就可以正确显示中文了!
以上这些,和语言代码对照表,我是在我的FreeBSD4.8中 FreeBSD版的SAMBA的配置文件里看到的。
2-2-3. 变化了的端口优化设置
socket option =
3.0.0版只能用一个参数了,不能用和2.X.X版一样的多个参数例:TCP_NODELAY SO_RVBUFD = 8912 SO_SNBUFD = 8912,
否则启动SMB会出错!在swat中相关选项的帮助信息也证实了只能用一个参数。
我只用TCP_NODELAY TCP优化就可以了,SMB就可以正常运行了!
3-0-0. 用户安全设置。我是用的共享级设置,除了访客/guest其它任何人(包括root)都不让访问!
建议SAMBA2x、3x都把下面的这段,开启。因为默认guest是nobody ,但这是个系统用户,不少程序用nobody运行,不安全!
guest account = pcguest
访客用户定义。
然后,把/etc/samba/smbusers改为:
root = administrator admin 注释掉/删除
nobody = guest pcguest smbguest 注释掉/删除
pcguest = smbguest
/etc/samba/smbpasswd 的内容干脆清空!
接着,编辑/etc/passwd文件,仿照ssh用户或者ftp用户添加pcguest用户,这样,guest/访客就可以访问了。
我的例子是:
pcguest
:1000:1000:pcguest:/var/empty:/sbin/nologin
注意,UID/GID 最好比500大,因为小于500都是系统内置帐户,有可能以后发生冲突!
以后,如果要添加新的系统级用户,使他可以远程访问他的用户目录,且有一切他的权限,可以用
smbadduser 系统帐户名:SMB登录名/客户端登录名
来添加,此时设置的密码是对应系统帐户的专用SMB 登录密码,最好与系统用户密码不同,这样更安全。
SAMBA3.0.0没有smbadduser了,用smbpasswd 来添加系统用户,编辑smbusers文件来管理 系统用户对应的smb登陆名.
在2.X.X版,我们并不想让guest用户可以看见系统用户的私人home目录,可以在home 段添加
map to guest = Bad User
这样guest就看不见系统用户的私人home目录了,只有系统用户才可见。
但是,在3.0.0版中,用不着了。
只要home段的browseable 为 no ,那任何用户(包括系统用户、root)都不可见home目录,
为yes,那也只显示出一个home,不会随用户的变化而变化。已经相当安全。
当然你只要加上map to guest = bad user 那又会不可见,无论上面是yes还是no.
以下是我的 home 段设置:
[home]
comment = Home Directory
browseable = no
writeable = yes
create mode = 0644
directory mode = 0755
valid users = %S #此项在SAMBA3.0.0里已经不可用! 会导致用户无法登陆!请注释掉/删除.
map to guest = bad user
browseable 和 map to guest 联用,双保险.
4-0-0. 一点小建议
不停的修改smb.conf 不停的重启smb,一遍遍输入/etc/rc.d/init.d/smb restart 很麻烦!我是这样的:
用vi建立一个resmb的文件放在/bin里 内容是:
/etc/rc.d/init.d/smb restart
然后,用chmod 700 resmb修改权限,设为可执行文件。
这样,只有root可以运行resmb了。假如你要修改resmb的运行权限、限制用户使用,你可以用chmod、chown 配合修改resmb的属性就可以!
以后,只要直接输入resmb指令就可以快速重新启动SMB了!
(C.) 版权:本文为LiKuKu原创,只要承认作者的版权,允许任意转载,但是不得用于商业目的。