[cvsnt] [chacl] Not being able to create or write to a file unless you have the same right on the parent folder.
Tony Hoyle
tony.hoyle at march-hare.com
Sun Sep 10 17:35:20 BST 2006
Tony Hoyle wrote:
> Works fine - just tried it again (but I have repositories configured
> like that and I know it works anyway).
>
Just went through all your issues below:
Root is set to read only, aclmode=normal:
tmh at keiko:~/a$ cvs rlsacl
Directory: <root>
Owner: <not set>
<default>
read
Directory a had no ACL:
tmh at keiko:~/a$ cvs rlsacl a
Directory: a
Owner: tmh
tmh at keiko:~/a$ ls >>a
tmh at keiko:~/a$ cvs commit -m "test" a
cvsnt server: User tmh is unable to write to ./a - ignoring
Add read/write/create to a, root still read only:
tmh at keiko:~/a$ cvs rchacl -a read,write,create a
setting ACL for directory a
tmh at keiko:~/a$ cvs rlsacl a
Directory: a
Owner: tmh
<default>
read
write
create
tmh at keiko:~/a$ cvs commit -m "test" a
Checking in a;
/testrepo/a/a,v <-- a
new revision: 1.5; previous revision: 1.4
done
Subdirectory.. permissions correctly inherited from a:
tmh at keiko:~/a$ mkdir dir
tmh at keiko:~/a$ cvs add dir
Directory /testrepo/a/dir added to the repository
tmh at keiko:~/a/dir$ cd dir
tmh at keiko:~/a/dir$ ls >a
tmh at keiko:~/a/dir$ cvs add a
cvsnt server: scheduling file `a' for addition
cvsnt server: use 'cvsnt commit' to add this file permanently
tmh at keiko:~/a/dir$ cvs commit -m "" a
RCS file: /testrepo/a/dir/a,v
done
Checking in a;
/testrepo/a/dir/a,v <-- a
initial revision: 1.1
done
Fiddle around with the ACLs again.. delete the ACL from a so we're
inheriting from the root:
tmh at keiko:~/a$ cd ..
tmh at keiko:~/a$ cvs chacl -d
deleting ACL for directory .
tmh at keiko:~/a$ cd dir
tmh at keiko:~/a/dir$ ls >>a
tmh at keiko:~/a/dir$ cvs commit -m "test" a
cvsnt server: User tmh is unable to write to ./a - ignoring
Put an ACL in the dir subdirectory.. inheriting read from root and a:
tmh at keiko:~/a/dir$ cvs chacl -a read,write,create
setting ACL for directory .
Now able to commit:
tmh at keiko:~/a/dir$ cvs commit -m "test" a
Checking in a;
/testrepo/a/dir/a,v <-- a
new revision: 1.2; previous revision: 1.1
done
Now remove the ACLs for a and dir again:
tmh at keiko:~/a/dir$ cvs chacl -d
deleting ACL for directory .
tmh at keiko:~/a/dir$ cd ..
tmh at keiko:~/a$ cvs chacl -d
deleting ACL for directory .
Add a noninherited write to the a directory:
tmh at keiko:~/a$ cvs chacl -n -a read,write,create
setting ACL for directory .
tmh at keiko:~/a$ cvs lsacl
setting ACL for directory .
Directory: .
Owner: tmh
<default>
read()
write()
create()
(not showing 'noinherit' seems to be a bug in this version, but the
brackets are a giveaway).
Now check the subdirectory to see that -n is in effect:
tmh at keiko:~/a$ cd dir
tmh at keiko:~/a/dir$ ls >>a
tmh at keiko:~/a/dir$ cvs commit -m ""
cvs commit: Examining .
cvsnt server: User tmh is unable to write to ./a - ignoring
As expected, no write access to the subdirectory.
Tony
More information about the cvsnt
mailing list