红联Linux门户
Linux帮助

能WINDOWS之不能,用Samba实现目录的双重共享

发布时间:2008-03-08 21:34:02来源:红联作者:cights
局域网管理有一个现实问题,机房服务器上要建立一个公共共享文件夹,访客有读取的权限,管理员有读写权限,但是如果在WINDOWS上实现的话有个问题,假如你在客户机以访客身份登录到服务器上(即使用“\\主机名”或“\\IP地址”的方式),那么你就对公共共享文件夹只有只读权限,如果你想以管理员身份登录的话,只能注销出去,重新进桌面,再以管理员身份登录共享文件夹,这样作虽然可以,但似我这等懒人还是觉得这样比较麻烦。最好是有两个不同名的共享文件夹,它们都指向实际服务器硬盘的同一个文件夹,其中一个供访客使用,可以随意读取无需用户名和密码,另一个供管理员使用,访问时需要输入用户名和密码,登录后就有管理权限。这样,在使用公用机时,即便机器已经被别人以访客的身份登录到服务器上,管理员还是能无需注销,只要输入用户名和密码就可以读写共享文件夹。不知道我说清楚了没有?

但这个问题在WINDOWS中解决就很麻烦,因为WINDOWS在同一台机器上对同一个文件夹只能建立一个共享。我的解决方法是直接甩掉WINDOWS用LINUX。事实上,如果机器只用来提供服务,那么使用LINUX比使用WINDOWS要安全。闲话少说,在LINUX中实现与WINDOWS共享文件的方法有多种,类似WINDOWS在局域网上共享文件的方法就是使用Samba服务,和WINDOWS一样,都是用的SMB协议。

先说说我用版本,考虑到兼容性、安全性、稳定性、易用性等因素,我用的是CENTOS,REDHAT在放弃开发新版的LINUX发行套件后,REDHAT便将以后的开发工作交给一些非营利性的技术小组了。其中REDHAT桌面版交给了FEDORA小组,企业服务器版就交给了CENTOS小组,考虑到我用LINUX的目的就是搭服务器,所以还是选用了企业服务器版,CENTOS2、3由于在防火墙配置工具上比较简陋,我又是个懒人,所以只考虑用CENTOS4、5,但由于第5版推出时间不长,目前最新的是5.1版,不稳定因素比较多,CENTOS4最新是4.6版,经过了多次修订,应该比较成熟稳定了,所以决定使用CENTOS4.6版,有些同志在搭服务器时不大重视版本,结果走了很多弯路,其实版本有时候是系统服务能否正常、稳定地运行的决定性条件。

安装、启动服务的过程从略......

你在安装时如果安装了防火墙的话(一般都要装的,要不机器相当于?奔嘛),注意要打开相应的端口,否则服务是不能被访问的。对于Samba来说,应该打开的有137/138/139三个端口的TCP方式,这样你就可以用“\\IP地址”的方式访问服务器,但如果你想用“\\主机名”的方式访问服务器的话,就要再打开137/138/139端口的UDP方式。

最后,修改/etc/samba/smb.conf这个配置文件,再从起SMB服务就大功告成了!以下是我实验机的原始配置文件,注意划线的部分就OK啦!

smb.conf

[global]
netbios name = CENTOS 主机别名

netbios aliases = vodsrv

server string = Samba Server Version %v

security = user 登录方式

encrypt passwords = yes 需要密码

map to guest = bad password 辨别是否访客的方式

null passwords = yes 许可空密码

passdb backend = tdbsam

unix password sync = yes Samba用户和LINUX用户密码同步

name resolve order = lmhosts, host, wins, bcast

add user script = /usr/sbin/adduser -s /bin/false -g popusers -c "smb account %u" %u

delete user script = /usr/sbin/deluser %u

domain logons = yes

os level = 0

preferred master = yes

domain master = yes

wins support = yes

message command = /bin/mail -s 'Message from %f at %m' root < %s; rm %s

idmap uid = 16777216-33554431

idmap gid = 16777216-33554431

cups options = raw

password level = 0

bind interfaces only = no

dead time = 0

debug level = 0

load printers = yes

hide dot files = yes

ldap ssl = yes

由于这一项相关选项一开,就相当于打开了/homes的共享,比较危险,所以能关的都给关了,呵呵!

[homes]

comment = Home Directories

inherit permissions = yes

hide dot files = no

browseable = no

preexec close = yes

root preexec close = yes

available = no

public = no

writable = no

only user = yes



[printers]

comment = All Printers

path = /var/spool/samba

printable = yes

browseable = yes

available = yes

public = yes



[netlogon]

preexec close = yes

root preexec close = yes

available = yes



[myfile] 这是供访客使用的只有读权限的共享

path = /filesrv 映射的实际文件夹

admin users = filer

read only = No

inherit permissions = yes

public = no

max connections = 500

hide dot files = no

copy = /filesrv

preexec close = yes

root preexec close = yes

available = yes

browseable = yes

guest only = yes 只供访客使用

writable = no

only user = no

[admfile] 这是供管理使用的共享

available = yes

browseable = yes

copy = /filesrv

path = /filesrv 看到没?和上一个共享指向同一个地方

public = no

guest only = no

writable = yes 打开只读权限

only user = yes 只能由合法用户访问

admin users = filer 管理者是谁啊?

preexec close = yes

root preexec close = yes

inherit permissions = yes

hide dot files = no

user = filer 谁能访问它啊?
文章评论

共有 1 条评论

  1. toiota 于 2008-03-11 10:18:00发表:

    哈哈。。收藏了。谢谢分享。