LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: xionghaijian

如何设置Samba服务来实现“windows用户在网上邻居中隐藏自己无权限访问的目录”?

[复制链接]
发表于 2005-6-7 12:50:23 | 显示全部楼层
你的要求是无法避开先认证再看到属于自己的共享这一步的.
security=share使用默认的用户名去认证共享,可能混乱
security=user解决了这个问题.需要提供username/password
回复 支持 反对

使用道具 举报

发表于 2005-6-7 13:00:23 | 显示全部楼层
再说说你用samba的环境,用windows域了还是一些个人用户?
要是windows域倒方便了,可以让samba到域控制器上认证,实现无缝集成
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-7 13:36:27 | 显示全部楼层
哦,是这样的!
我打个比方说吧。
比如我现在有UserA、UserB、UserC、UserD……UserX、UserY、UserZ一共26个用户,
我给每个用户配置一个个人专用目录为
FolderA、FolderB、FolderC、FolderD……FolderX、FolderY、FolderZ,
再加上所有这26个用户都能访问的公共目录Public1,Public2……
此为还有一些只有部分几个用户,姑且定义为某一个组所共享的目录Group1,Group2……
大体上就是这样的架构!

现在假设用户UserA属于Group1,他对FolderA、Group1、Public1、Public2……有完全访问权限。

我现在的矛盾是:
如果设置security=user,在共享文件夹的section中分别设置这所有的共享文件夹的browsable = yes,那么用户UserA在网上邻居进入这台linux主机的SAMBA服务器时,将能看到所有这些用户的目录:FolderA、FolderB、FolderC、FolderD……FolderX、FolderY、FolderZ、Public1,Public2……、Group1,Group2……

如果设置security=user,在共享文件夹的section中分别设置这所有的共享文件夹的browsable = no,那么用户UserA在网上邻居进入这台linux主机的SAMBA服务器时,将看不到一个文件夹存在,而是要在地址栏中输入\\linux-host-IP\FolderA,才能进入该目录,访问目录内的内容;同样,其它有权限访问的目录,也要输入\\linux-host-IP\XXXX之类的内容,才能进行访问。当然,其它没有权限的共享目录,即使输入相应的目录名称正确,在没有正确的用户名/密码的情况下,是不能进入该目录的!

总的来说,我现在想实现的不是权限能不能进行访问的问题,我要解决的是在网上邻居的浏览器中共享文件夹可见不可见的问题。

请注意:点击网上邻居中的机器名后,能看到的就是samba共享出来的第一级目录,也就是这些在section段中定义的目录,要不要在浏览器中显示的问题。

以上的问题,如果用security=user如何实现?
如果用security=server,又如何实现?

sfatsdu兄讲,用windows域比较方便,用windows的域控制器进行认证,请问是不是就是security=server,再把server设成对应的windows域控制器就可以了?

谢谢!
回复 支持 反对

使用道具 举报

发表于 2005-6-7 14:28:35 | 显示全部楼层
可以把所有用户都限制在home嘛
把[home]可以改成path=/home/mdxxx/$u
不必把每个人的共享都分开,登录的时候就进入自己的家目录就可以了把?
回复 支持 反对

使用道具 举报

发表于 2005-6-8 08:25:35 | 显示全部楼层
官方文档是最好的参考:
http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/
这一段讲得samba的工作模式,值得精读
http://us1.samba.org/samba/docs/ ... ion/ServerType.html
如果你们公司有了ActiveDirectory域,看看这个,如何把samba服务和AD集成
http://us1.samba.org/samba/docs/ ... /domain-member.html
还有一份文档,全是例子
http://us1.samba.org/samba/docs/man/Samba-Guide/
回复 支持 反对

使用道具 举报

发表于 2005-6-8 08:44:13 | 显示全部楼层
对于samba .通常在系统安装时 /home 都是做为单独分区的,
所以你的解决方案可以是:

把要贡献给各个用户的东西放入 /home/$user 下
并且security=user;
[file]
...
这里面要用 valid user=A B C ...
这样.进入网上邻居后首先看到的只是一台samba主机,双击时是 弹出认证窗口的,
当键入用户名/密码后 进入的就只是自己能看到的目录夹了.
当然这个目录夹应该是属于一组用户的 group的了.
应该可以解决你的问题了吧. 如果你想贡献其他目录里的文件,那就用 ln -s 连接到这个目录里好了
如果需要经常使用或者常驻 ,,那就用 mount 挂载到这个目录下好了. 建议用 ln -s
回复 支持 反对

使用道具 举报

发表于 2005-6-9 17:54:57 | 显示全部楼层
这是我的,你可参考一下
[global]
log file = /var/log/samba/log.%m
max log size = 1000
netbios name = 自己写
workgroup = 自己写
server string =

client code page=cp936
dos charset = cp936
unix charset = cp936

security = user
encrypt passwords = true
smb passwd file = /etc/samba/smbpasswd

map to guest = Bad User
map to guest = Bad Password
guest account = nobody

[共享文档]
comment = 共享文档
path = /home/netdir
public = yes
writable = yes
create mask = 0666

[FTP]
comment = FTP
path = /home/ftp
read only = no
public = yes


[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775
回复 支持 反对

使用道具 举报

发表于 2005-6-18 17:16:54 | 显示全部楼层
我出现了跟楼主一样的问题.
如果用share方式,每个用户都要输入用户名和密码.太麻烦
如果用USER方式,输入用户名和密码是,用户名是灰的,锁定的,

有什么解决办法吗?
回复 支持 反对

使用道具 举报

发表于 2005-6-18 20:21:33 | 显示全部楼层
等人回答呀
回复 支持 反对

使用道具 举报

发表于 2005-6-20 10:48:58 | 显示全部楼层
这位仁兄的问题,我也找了很多资料还没解决!! 试试 config file = /etc/samba/smb.conf.%G 不同的组使用不同的配置文件可不可以? 传闻再写一个samba模块可以实现.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表