能WINDOWS之不能,用Samba实现目录的双重共享
局域网管理有一个现实问题,机房服务器上要建立一个公共共享文件夹,访客有读取的权限,管理员有读写权限,但是如果在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 谁能访问它啊?