mainSavannah Administration - Support: sr #105364, non-project member has 'cvs watch'...

 
 

sr #105364: non-project member has 'cvs watch' and is causing problems

Submitter:  Mark D. Baushke <mdb>
Submitted:  Thu 25 May 2006 10:36:16 PM UTC
   
 
Category:  Source code repositories - developer access Priority:  5 - Normal
Severity:  3 - Normal Status:  None
Privacy:  Public Assigned to:  Beuc
Operating System:  None Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Mon 26 Jun 2006 10:42:48 PM UTC, comment #8: 

I removed the CVS/ dirs.

Thanks for the explanations.

Sylvain Beucler <Beuc>
Mon 26 Jun 2006 07:33:18 PM UTC, comment #7: 

Hi Sylvain,

First, please purge all the CVS/ directories.  That will get rid of the dbowles edits and won't lose anything vital.

Second, to answer your permissions question, CVS needs write permissions only to the archive directories when writing achives for a number of reasons.  At the most basic, CVS writes new archives to a temp file and then moves the complete file over the old version, and this only requires write permissions to the directory since ext2/3 filesystems without ACLs in use treat this as a file creation, a file deletion, then a rename, all of which only require write permissions to the new directory.

Looking a little deeper, CVS updates archives this way because RCS did and CVS imported most of the original RCS code.  RCS did things this way because it used the temp file as a file lock on the archive and probably because it has the secondary effect of not corrupting an archive file when writes are interrupted by a system or disk crash.

CVS/fileattr is not handled this way only because no one ever thought it was necessary.  Locking this file was never necessary because CVS locks the entire parent directory before writing file attrs and CVS simply opens the CVS/fileattr file and begins writing to it, which requires write permissions to the file.  As for system crashes, a corrupt CVS/fileattr is not nearly as potentially devastating as a corrupt archive file.

Derek Robert Price <dprice>
Sun 25 Jun 2006 10:00:34 AM UTC, comment #6: 

Ok, what I was asking was: how comes you need write access to those files, while CVS always only need write access on the parent directory? This is something I didn't take into account for the CVS import script.

Next, I chmoded g+w the fileattr files a week or two ago, so you should be able to edit them.

If you want to completely purge the CVS/ directories, I can do that as well.

Sylvain Beucler <Beuc>
Wed 07 Jun 2006 08:44:58 PM UTC, comment #5: 

The problem persists without change.

% cvs watchers tag.c
tag.c   dbowles tedit   tunedit tcommit
% ls -l tag.c
-rw-r--r--  1 mdb sw-tools 46525 May 26 12:25 tag.c
% cvs edit tag.c
cvs server: cannot write /cvsroot/cvs/ccvs/src/CVS/fileattr: Permission denied
%

It is highly desirable to purge the /cvsroot/cvs system of
the CVS/fileattr files and CVS directories as they are not
presently useful.

Mark D. Baushke <mdb>
Wed 07 Jun 2006 07:26:42 PM UTC, comment #4: 

Ping?

Sylvain Beucler <Beuc>
Fri 02 Jun 2006 06:11:54 PM UTC, comment #3: 

Hi. Sorry for the delay, it's been a hard job week ;)

sv_cvs:/cvsroot/cvs/ccvs/src# ls -ld CVS
drwxrwsr-x  2 root cvs 4096 Sep 16  2004 CVS
sv_cvs:/cvsroot/cvs/ccvs/src# ll CVS
total 16
-r--r--r--  1 root cvs 12721 Apr 20  2005 fileattr


This happened before CVS moved to Savannah.

I expected CVS to do fine as long as it has write permissions on the directory containing the target file (at least that works for ,v files). Is it different for those CVS/fileattr ones?


Sylvain Beucler <Beuc>
Fri 26 May 2006 07:36:07 AM UTC, comment #2: 

I submitted a patch a while ago to do with watch not working, so guess this relates to work I was doing at the time to fix this. 

Thanks,
Darren.

Darren Bowles <dbowles>
Fri 26 May 2006 03:17:37 AM UTC, comment #1: 

Wanted to add that I would have expected the repository permissions to be set up in such a way that a user who is not a member of the project should not have been able to cause the fileattr file on the server to be written - they should have gotten the permisison denied error long before one of the project members did.

Derek Robert Price <dprice>
Thu 25 May 2006 10:36:16 PM UTC, original submission:  

Any idea why dbowles is listed here or why the fileattr has problems?

$ cvs -Q -d mdb@cvs.savannah.nongnu.org:/cvsroot/cvs\
 co ccvs
$ cd ccvs/src
$ cvs watchers tag.c
tag.c   dbowles tedit   tunedit tcommit
$ cvs edit tag.c
cvs server: cannot write /cvsroot/cvs/ccvs/src/CVS/fileattr: Permission denied
$ cvs watchers
.cvsignore      dbowles tedit   tunedit tcommit
ChangeLog       dbowles tedit   tunedit tcommit
ChangeLog-9194  dbowles tedit   tunedit tcommit
ChangeLog-9395  dbowles tedit   tunedit tcommit
ChangeLog-96    dbowles tedit   tunedit tcommit
ChangeLog-97    dbowles tedit   tunedit tcommit
Makefile.am     dbowles tedit   tunedit tcommit
Makefile.in     dbowles tedit   tunedit tcommit
add.c   dbowles tedit   tunedit tcommit
admin.c dbowles tedit   tunedit tcommit
annotate.c      dbowles tedit   tunedit tcommit
buffer.c        dbowles tedit   tunedit tcommit
buffer.h        dbowles tedit   tunedit tcommit
build_src.com   dbowles tedit   tunedit tcommit
checkin.c       dbowles tedit   tunedit tcommit
checkout.c      dbowles tedit   tunedit tcommit
classify.c      dbowles tedit   tunedit tcommit
client.c        sattemp tedit   tunedit tcommit
        dbowles tedit   tunedit tcommit
client.h        sattemp tedit   tunedit tcommit
        dbowles tedit   tunedit tcommit
commit.c        dbowles tedit   tunedit tcommit
create_adm.c    dbowles tedit   tunedit tcommit
cvs.h   dbowles tedit   tunedit tcommit
cvsbug.in       dbowles tedit   tunedit tcommit
cvsrc.c dbowles tedit   tunedit tcommit
diff.c  dbowles tedit   tunedit tcommit
edit.c  dbowles tedit   tunedit tcommit
edit.h  dbowles tedit   tunedit tcommit
entries.c       dbowles tedit   tunedit tcommit
error.c dbowles tedit   tunedit tcommit
exithandle.c    dbowles tedit   tunedit tcommit
expand_path.c   dbowles tedit   tunedit tcommit
fileattr.c      dbowles tedit   tunedit tcommit
fileattr.h      dbowles tedit   tunedit tcommit
filesubr.c      dbowles tedit   tunedit tcommit
find_names.c    dbowles tedit   tunedit tcommit
gssapi-client.c dbowles tedit   tunedit tcommit
gssapi-client.h dbowles tedit   tunedit tcommit
hardlink.c      dbowles tedit   tunedit tcommit
hardlink.h      dbowles tedit   tunedit tcommit
hash.c  dbowles tedit   tunedit tcommit
hash.h  dbowles tedit   tunedit tcommit
history.c       dbowles tedit   tunedit tcommit
history.h       dbowles tedit   tunedit tcommit
ignore.c        dbowles tedit   tunedit tcommit
import.c        dbowles tedit   tunedit tcommit
kerberos4-client.c      dbowles tedit   tunedit tcommit
kerberos4-client.h      dbowles tedit   tunedit tcommit
lock.c  dbowles tedit   tunedit tcommit
log-buffer.c    dbowles tedit   tunedit tcommit
log-buffer.h    dbowles tedit   tunedit tcommit
log.c   dbowles tedit   tunedit tcommit
login.c dbowles tedit   tunedit tcommit
logmsg.c        dbowles tedit   tunedit tcommit
ls.c    dbowles tedit   tunedit tcommit
main.c  dbowles tedit   tunedit tcommit
mkmodules.c     dbowles tedit   tunedit tcommit
modules.c       dbowles tedit   tunedit tcommit
ms-buffer.c     dbowles tedit   tunedit tcommit
ms-buffer.h     dbowles tedit   tunedit tcommit
myndbm.c        dbowles tedit   tunedit tcommit
myndbm.h        dbowles tedit   tunedit tcommit
no_diff.c       dbowles tedit   tunedit tcommit
parseinfo.c     dbowles tedit   tunedit tcommit
parseinfo.h     dbowles tedit   tunedit tcommit
patch.c dbowles tedit   tunedit tcommit
rcs.c   dbowles tedit   tunedit tcommit
rcs.h   dbowles tedit   tunedit tcommit
rcscmds.c       dbowles tedit   tunedit tcommit
recurse.c       dbowles tedit   tunedit tcommit
release.c       dbowles tedit   tunedit tcommit
remove.c        dbowles tedit   tunedit tcommit
repos.c dbowles tedit   tunedit tcommit
root.c  dbowles tedit   tunedit tcommit
root.h  dbowles tedit   tunedit tcommit
rsh-client.c    dbowles tedit   tunedit tcommit
rsh-client.h    dbowles tedit   tunedit tcommit
run.c   dbowles tedit   tunedit tcommit
sanity.config.sh.in     dbowles tedit   tunedit tcommit
sanity.sh       dbowles tedit   tunedit tcommit
scramble.c      dbowles tedit   tunedit tcommit
server.c        sattemp tedit   tunedit tcommit
        dbowles tedit   tunedit tcommit
server.h        dbowles tedit   tunedit tcommit
socket-client.c dbowles tedit   tunedit tcommit
socket-client.h dbowles tedit   tunedit tcommit
stack.c dbowles tedit   tunedit tcommit
stack.h dbowles tedit   tunedit tcommit
status.c        dbowles tedit   tunedit tcommit
subr.c  dbowles tedit   tunedit tcommit
subr.h  dbowles tedit   tunedit tcommit
tag.c   dbowles tedit   tunedit tcommit
update.c        dbowles tedit   tunedit tcommit
update.h        dbowles tedit   tunedit tcommit
vers_ts.c       dbowles tedit   tunedit tcommit
version.c       dbowles tedit   tunedit tcommit
watch.c dbowles tedit   tunedit tcommit
watch.h dbowles tedit   tunedit tcommit
wrapper.c       dbowles tedit   tunedit tcommit
zlib.c  dbowles tedit   tunedit tcommit
$

Unless there is a very good reason for user dbowles
who is NOT a member of the Concurrent Versions System
project to have to have a 'cvs watch' on all of
our files, I respectfully request that they be
removed. In any case, a 'cvs edit' should NOT fail
with 'Permission denied.' for any of the members.

Note: Darren Bowles (dbowles) appears to have done the
same to other files in the project.

Mark D. Baushke <mdb>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

Only logged-in users can vote.

 

Follow 4 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2006-06-26 Beuc Open/ClosedOpen Closed
2006-06-07 Beuc Assigned toNone Beuc
2006-05-25 mdb Carbon-Copy- Added -email is unavailable-
    Carbon-Copy- Added dbowles

Back to the top

Powered by Savane 3.13-4448.
Corresponding source code