PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CVS will nicht


Dove
19.11.2007, 11:16
Mahlzeit,

wir/ich sind dabei einen CVS-Server einzurichten.
Ja ich weiß, dass SVN besser, einfacher und aktueller ist, aber das ist leider nicht durch zuführen, da eins unserer Entwicklungsprogramme kein SVN unterstützt.
Man kann dieses Programm leider auch nicht ersetzten, da es nichts vergleichbares gibt.

Betriebssystem ist Debian 4.0.

So ich habe ein Repo erzeugt unter dem Systemuser john erzeugt mittels:

john@cvs-server:~$ export CVSROOT=/home/john/cvs
john@cvs-server:~$ cvs init
john@cvs-server:~$ cvs import -m "Initialisiere Source" project john start


Das lief auch alles durch. Direkt über cvs checkout usw kann ich dateien auch ein und auschecken.

So, da wir mehr als ein Entwickler sind, soll jeder Zugang zu dem CVS bekommen.

Somit habe ich mittels

cvs-server:/home/john/cvs$ groupadd cvsusers
cvs-server:/home/john/cvs$ usermod -G cvsusers john
cvs-server:/home/john/cvs$ chown -R john:cvsusers /home/john/cvs
cvs-server:/home/john/cvs$ chmod -R 775 /home/john/cvs
cvs-server:/home/john/cvs# ls -l
insgesamt 8
drwxrwxr-x 3 john cvsusers 4096 2007-11-15 12:57 CVSROOT
drwxrwxr-x 5 john cvsusers 4096 2007-11-15 13:10 project
cvs-server:/home/john/cvs$ su john
john@cvs-server:~$ cvsd-passwd /home/john/cvs +john:john


Das habe ich soweit ausgeführt.

die $CVSROOT/CVSROOT/config sieht folgender Maßen aus:

SystemAuth=no
UseNewInfoFmtStrings=yes


Die /etc/cvsd/cvsd.conf hat diesen Inhalt:
RootJail /var/lib/cvsd
Uid cvsd
Gid cvsd
Nice 1
Umask 027
PidFile /var/run/cvsd.pid
MaxConnections 10
Log /var/log/cvsd.log debug
Listen * 2401
Repos /home/john/cvs


und die Log schmeißt dies aus:
cvsd: version 1.0.13 starting
cvsd: debug: binding :: 2401 family=10 socktype=1 protocol=6
cvsd: listening on :: 2401
cvsd: debug: binding 0.0.0.0 2401 family=2 socktype=1 protocol=6
cvsd: debug: bind() failed (ignored): Address already in use
cvsd: debug: chroot(/var/lib/cvsd) done
cvsd: debug: nice(1) done
cvsd: debug: setgroups(0,NULL) done
cvsd: debug: setgid(104) done
cvsd: debug: setuid(104) done
cvsd: debug: cvs command to execute: '/bin/cvs -f --allow-root=/home/john/cvs pserver'
cvsd: accepting connections
cvsd: connection from 192.168.168.86 3433
cvsd: debug: fork() succeeded (child pid=2453)
cvsd: cvs command exited with exit-status 1
cvsd: connection from 192.168.168.225 2480
cvsd: debug: fork() succeeded (child pid=2462)
cvsd: debug: select() failed (ignored): Interrupted system call
cvsd: cvs command exited with exit-status 1
cvsd: connection from 192.168.168.225 2481
cvsd: debug: fork() succeeded (child pid=2464)
cvsd: debug: select() failed (ignored): Interrupted system call
cvsd: cvs command exited with exit-status 1


will ich mich einloggen kommt folgendes
cvs-server:/home/john/cvs# cvs -d :pserver:jack@192.168.168.225:/home/john/cvs login
Logging in to :pserver:jack@192.168.168.225:2401/home/john/cvs
CVS password:
cvs login: authorization failed: server 192.168.168.225 rejected access to /home/john/cvs for user jack
cvs-server:/home/john/cvs#


wenn das ganze über einen externen clienten geht bekomme ich nur die antwort:
"I HATE YOU."
und der Client bricht mit folgender Meldung ab:
"E PAM start error: Critical error - immediate abort"


Ich weiß nicht mehr weiter.
Die Mailinglisten geben nichts her was ich verwenden könnte.


Mr.Homm
19.11.2007, 16:12
...
die $CVSROOT/CVSROOT/config sieht folgender Maßen aus:

SystemAuth=no
UseNewInfoFmtStrings=yes
...


Also darf CVS nicht die System-Passwörter zum Checken von Benutzern verwenden [1]. Laut [2] wird aber nicht automatisch eine Benutzer/Passwort-Datei durch cvs-init erzeugt:

...
Das reicht aus, um Verbindungen zu erlauben. Sie werden aber auch spezielle CVS-Passwörter - getrennt von den normalen Benutzerpasswörtern - einrichten wollen, damit jemand auf das Archiv zugreifen kann, ohne die allgemeine Systemsicherheit zu beeinträchtigen. Die CVS Passwortdatei befindet sich im Archiv in CVSROOT/passwd. Sie wurde nicht standardmäßig beim Aufruf von cvs init erzeugt, da CVS nicht wissen konnte, dass Sie pserver benutzen werden. Auch wenn die Passwortdatei erzeugt wurde, kann CVS nicht wissen, welche Benutzernamen und Passwörter angelegt werden sollen. Also müssen Sie sie selbst anlegen.
...


Vielleicht fehlt einfach diese Datei? Unter [2] steht auch gleich, wie eine erzeugen werden kann. Die System-Passwörter zu verwenden soll ein Sicherheitsrisiko sein.


[1] http://www.network-theory.co.uk/docs/cvsmanual/config.html
[2] http://cvsbook.red-bean.com/translations/german/Kap_04.html#pgfId-218174

Dove
19.11.2007, 16:22
die Datei existierte.

Hab das jetzt alles noch mal neu gemacht und unter dem Ordner /var/lib/cvsd erzeugt (Standard von Debian) und nun gehts.