|
本帖最后由 toccata 于 2014-5-19 18:25 编辑
我是在ubuntu上趟了两天,才把这个配置稍微弄明白,samba太麻烦了,最好还是有些解释来满足不同的需求,大家再根据自己的需求来调整自己的配置。
- #========BEGIN=========
- [global]
- workgroup = TOCCATA
- server string = Ubuntu NAS
- encrypt passwords = yes
-
- # 常用设置是 user, share , Domain, AD简单的使用你只需要知道user,和share,share这个值已经在samba v4 中废弃不再使用,
- # 因此用的最多就是security = user,意味着需要授权验证
- security = user
- # server role = standalone
- #这里的guest 指的是windows的文件共享的匿名用户的名字,guest accout = nobody是将匿名用户对应到nobody上。
- #Guest is a window name. Annoymose user will is guest. Then guest account will map guest to nobody which is a linux user name.
- guest account = nobody
- #samba用户中中不存在的用户,自动用guest 登录,因此bad user不需授权验证。
- map to guest = bad user
-
- #允许匿名登录
- ;guest ok = yes
-
- #值允许匿名登录
- ;guest only = yes
- # 可用用户列表
- ;valid users = toccata guest
- #在访问局域网文件目录时,所用的用户名(是windows的用户名)将通过该文件中的映射关系来映射到samba 的用户名,在用这个samba的用户名做授权验证,这个授权验证在下面passdb backend 中设置。
- username map = /etc/samba/smbusers
- #隐藏以点开头的文件。
- hide dot files = yes
- #smb passwd file = /etc/samba/smbpasswd
- #samba用户验证后台,可以选择smbpasswd, tdbsam, ldapsam, 常用smbpasswd, tdbsam,推荐tdbsam,这种方式采用的是将用户名和密码的哈希存在本地数据库(不是SQL数据库)中,而smbpasswd是直接将用户名密码存在文件中,这个文件在smb passwd file
复制代码
samba登录是这样一个过程,
- 首先用你的windows的用户名和密码来尝试登录,如果在samba中(password backend密码后台)没有该账户,你就是一个bad user ,如果在配置中设置map to guest = bad user,那么授权验证就不需要了,可以直接访问文件共享。
- 如果有该账户,用password backend 来验证,验证通过,则以windows的用户名来登录,那你访问的目录时,创建了文件,这些文件的拥有这就是该用户,因为设定拥有着为你的windows账户,在默认的情况下,其他人没法访问。这样就有好处就是,可以保持管理员有特殊的权限,他创建的文件,别人无法访问和无法修改。在该配置下,因为设置create mask = 0644,所有人都可以读,创建者拥有全权,属于你这个用户组和其他用户的其他用户拥有读权限,如果设置create mask = 0600,那么只有你能访问你创建的文件;
- 如果该账户登录失败,就会弹出对话框让你填写用户名密码,你可以纠正你的密码,那么将作为该windows用户对应的linux用户登录,也可以随意填写用户名,那么将所作为nobody来登录linux。
这其中如果你配置了username map = /etc/samba/smbusers, 那么将在做samba授权验证之前用username map转化你的用户名成linux用户名,再做授权验证。
因为home/your_name下的访问权限有限制,需要自己调整权限,并将共享目录的权限改为777, 不过这样不够安全,想更安全一点,就需要将nobody加入到your_name用户组中来,将给与该用户组读写权限,另外这个权限需要与directory mask一致。
该配置文件中#和;符号作用都是注视该行,
samba的共享目录也可以通过net命令来动态控制,但是需要在global中设置include = registry. 然后通过命令net CONF ADDSHARE sharename path [writeable={y|N} [guest_ok={y|N} [comment]]] 这个命令来添加共享,
如有错误,请纠正,本人比较懒,主要想和配置过samba的人讨论下。
|
|