[cvsnt] Re: ACL problems with 2.5.01.19xx

Jari Ahonen jah at progress.com
Tue May 17 14:25:54 BST 2005


Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.


> > You can get fairly verbose output by tracing the server, where
> > it'll show you the searching logic (including what groups the
> > user is in).
> 
> I'll try this and post the results with a working (<=2.5.01.1910)
> and non-working (>2.5.01.1910) version.

The traces from build 1910 and 1969 look pretty much identical until
where the problem comes up. I've only included the part that's
interesting.

If you look at the traces side by side it seems that where build 1910
does

verify_perm(D:/cvsrepo/acltest,test.txt,write,(null),(null))

build 1969 does

verify_perm(D:/cvsrepo/,test.txt,write,(null),(null))

instead. So it seems that the subdirectory is dropped from the
permission
check and as a result, only the top-level permissions are effective.


Build 1910:
-----
15:09:08: S -> verify_valid_name(g-dev)
15:09:08: S -> matched ACL user=g-dev, branch=_default_, merge=
15:09:08: S -> calculated ACL priority is 0
15:09:08: S -> new max priority is 0
15:09:08: S -> matched ACL user=, branch=_default_, merge=
15:09:08: S -> calculated ACL priority is 0
15:09:08: S -> user_state = 0, group_state = 1
15:09:08: S -> fileattr_startdir(D:/cvsrepo/acltest)
15:09:08: S -> map_filename(D:/cvsrepo/acltest,test.txt)
15:09:08: S -> map_repository(D:/cvsrepo/acltest/test.txt)
15:09:08: S -> lookup_module2(acltest/test.txt,2)
15:09:08: S -> RCS_parse(test.txt,D:/cvsrepo/acltest)
15:09:08: S -> rcsbuf_open(D:/cvsrepo/acltest/test.txt,v)
15:09:08: S -> normalize_path(D:/cvsrepo/acltest/test.txt,v)
15:09:08: S -> ...returns D:/cvsrepo/acltest/test.txt,v
15:09:08: S -> rcsbuf_fill(00C65868,00000000,00000000,00000000)
15:09:08: S -> rcsbuf_fill: expanded to 8192l
15:09:08: S -> verify_access ,D:/cvsrepo/acltest,(null)
15:09:08: S ->
verify_perm(D:/cvsrepo/acltest,test.txt,write,(null),(null))
15:09:08: S -> verify_owner(D:/cvsrepo/acltest)
15:09:08: S -> cache_directory_permissions(D:/cvsrepo/acltest)
15:09:08: S -> ACL lookup on directory D:/cvsrepo/acltest
15:09:08: S -> verify_acl(write,HEAD,(null))
15:09:08: S -> verify_valid_name(g-dev)
15:09:08: S -> matched ACL user=g-dev, branch=_default_, merge=
15:09:08: S -> calculated ACL priority is 0
15:09:08: S -> new max priority is 0
15:09:08: S -> matched ACL user=, branch=_default_, merge=
15:09:08: S -> calculated ACL priority is 0
15:09:08: S -> user_state = 0, group_state = 1
15:09:08: S -> Classify_File (test.txt)
15:09:08: S -> RCS_getversion((null),(null),1)
15:09:08: S -> wnt_stat(test.txt)
15:09:08: S -> _statcore(00000000,test.txt)
15:09:08: S -> Trying GetFileAttributesEx....
-----

Build 1969:
-----
15:01:12: S -> verify_valid_name(g-dev)
15:01:12: S -> matched ACL user=g-dev, branch=_default_, merge=
15:01:12: S -> calculated ACL priority is 0
15:01:12: S -> new max priority is 0
15:01:12: S -> matched ACL user=, branch=_default_, merge=
15:01:12: S -> calculated ACL priority is 0
15:01:12: S -> user_state = 0, group_state = 1
15:01:12: S -> fileattr_startdir(D:/cvsrepo/acltest)
15:01:12: S -> map_filename(D:/cvsrepo/acltest,test.txt)
15:01:12: S -> map_repository(D:/cvsrepo/acltest/test.txt)
15:01:12: S -> lookup_module2(acltest/test.txt,2)
15:01:12: S -> RCS_parse(test.txt,D:/cvsrepo/acltest)
15:01:12: S -> rcsbuf_open(D:/cvsrepo/acltest/test.txt,v)
15:01:12: S -> normalize_path(D:/cvsrepo/acltest/test.txt,v)
15:01:12: S -> ...returns D:/cvsrepo/acltest/test.txt,v
15:01:12: S -> rcsbuf_fill(00C85870,00000000,00000000,00000000)
15:01:12: S -> rcsbuf_fill: expanded to 8192l
15:01:12: S -> verify_access ,D:/cvsrepo/acltest,(null)
15:01:12: S -> verify_perm(D:/cvsrepo/,test.txt,write,(null),(null))
15:01:12: S -> verify_owner(D:/cvsrepo/)
15:01:12: S -> cache_directory_permissions(D:/cvsrepo/)
15:01:12: S -> fileattr_read(D:/cvsrepo/)
15:01:12: S -> ACL lookup on directory D:/cvsrepo/
15:01:12: S -> verify_acl(write,HEAD,(null))
15:01:12: S -> verify_valid_name(g-adm)
15:01:12: S -> matched ACL user=, branch=_default_, merge=
15:01:12: S -> calculated ACL priority is 0
15:01:12: S -> new max priority is 0
15:01:12: S -> user_state = 0, group_state = -1
cvs server: User EMEA\jah is unable to write to /test.txt
cvs server: Only admin group has access here
15:01:12: S -> fileattr_write()
15:01:12: S -> fileattr_free()
15:01:12: S -> close_directory()
cvs [server aborted]: correct above errors first!
-----

- Jari




More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook