Saturday, April 18, 2009

LDAP认证的samba时的@group与inherit group

搞了N天的samba, 怎么学都觉得samba是一个无底洞.

主要问题有两个.

第一个: 限制用户登陆时使用@group_name的方法出问题
valid users = @sop
不行. 但是如下的几种方法是可以的:

valid users = @"Domain Users"
或者是:
vaild users = liangqingxi

从如下命令中得到提示:
jessinio@machine:/mnt/uss/sop$ sudo net groupmap list

.....(some words)
kspeg (S-1-5-21-1087281994-2111277646-1653592359-1001) -> usbfs
.....(some words)


kspeg被map到usbfs了, 有点与众不同. 于是测试一下:
valid users = @usbfs

可以登陆! -_-! 使用ldap认证的samba的组还是需要/etc/group文件的?

问题是Domain Users也不存在于/etc/group文件, 为什么@后又可以登陆呢?


第二个问题: 用户创建的文件不能inherit父目录的!
-_-! 这个可是使用samba作用文件共享的一个重要功能呀! 没有了它, 就没法实现复杂的权限控制, 还有个屁用.

被烦了不知道多少天! 每天都在想着PPC到底能不能完成.

在google了N天, 都是只有如下几个选项:
acl group control = Yes
inherit owner = user_name
inherit permissions = Yes
inherit acls = Yes
force group = group_name

都些选项都无法替代inherit group(不存在, 我自己起的名)! 如何都到inherit group的效果呢?

jessinio@laptop:~$ mkdir test
jessinio@laptop:~$ sudo chown :sambashare test
jessinio@laptop:~$ cd test/
jessinio@laptop:~$ sudo chmod g+s test
jessinio@laptop:~$ cd test/
jessinio@laptop:~/test$ ls -al
total 8
drwxr-sr-x 2 jessinio sambashare 4096 2009-04-20 09:55 .
drwxr-xr-x 6 jessinio jessinio 4096 2009-04-20 09:55 ..
jessinio@laptop:~/test$ id
uid=1000(jessinio) gid=1000(jessinio) groups=4(adm),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),107(fuse),113(lpadmin),114(admin),1000(jessinio)
jessinio@laptop:~/test$ touch inherit_group
jessinio@laptop:~/test$ ls -al
total 8
drwxr-sr-x 2 jessinio sambashare 4096 2009-04-20 09:56 .
drwxr-xr-x 6 jessinio jessinio 4096 2009-04-20 09:55 ..
-rw-r--r-- 1 jessinio sambashare 0 2009-04-20 09:56 inherit_group

可以看到, 新创建的文件不是默认的jessinio:jessinio, 变成了jessinio:sambashare, 这时jessinio是可以不在sambashare组中的(由id命令可以看到)

BWT: 难道这也是samba中的unix的原则(这样的事情应该给文件系统)? -_-! 太汗了, 为什么不加多个inherit group选项呢?


发现有一个有意思的事: samba也有hook!不过只是寥寥的几个hook.如:
root preexec = /path/to/script


真希望samba能提供多一点的hook, 方便使用 ^_^

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.