CVS -> kein Checkout nach BS-Wechsel mehr möglich

Infomatrixx

New Member
Hallo zusammen,

habe ein Problem nach dem Umzug auf openSuse 10.3 mit meinem CVS.

Habe mein System komplett umgezogen, inkl. User und Gruppen, sowie den entsprechenden Dateiberechtigungen. Nachdem ich cvs per Yast installiert habe und xinetd für den pserver eingerichtet habe, musste ich feststellen, dass ich per Eclipse, bzw. per Shell nicht mehr meine Projekte auschecken kann.

Einchecken, branchen, taggen, geht ohne Probleme.

Beim Auschecken erhalte ich folgenden Fehler: "cvs [checkout aborted]: could not get working directory: Permission denied"

Meine Repo-Struktur sieht wie folgt aus:

/srv/cvs/

|- drwxrwsr-x 4 root cvsuser 1024 Apr 20 20:21 test
__|- drwxrwsr-x 3 root cvsuser 1024 Apr 20 20:07 CVSROOT
__|- drwxrwsr-x 3 cvs cvsuser 1024 Apr 20 20:22 Test
____|- -r--r--r-- 1 cvs cvsuser 441 Apr 20 20:22 .classpath,v
____|- -r--r--r-- 1 cvs cvsuser 578 Apr 20 20:22 .project,v
____|- drwxrwsr-x 2 cvs cvsuser 1024 Apr 20 20:22 src

Die Zugangsberechtigung erfolgt über eine cvs passwd, jeder User darin ist dem Systemuser cvs zugeordnet. Dieser gehört zur Gruppe cvsuser.

Hat jemand eine Idee wo ich nach dem Fehler suchen könnte ?

Gruß

Infomatrixx
 
Ja, das sieht schon komisch aus. Kannst Du den checkout mit der Trace-Option mal in der Shell durchführen und das Ergebnis hier posten?
Code:
cvs -t checkout ...
 
Die Paßworte in der $CVSROOT/passwd werden mit der crypt()-Funktion des Betriebssystems generiert bzw. verglichen. Eventuell gibt es hier Unterschiede in den Einstellungen (Algorithmus, Zahl der signifikanten Zeichen o.ä.).

Generiere doch mal ein neues Paßwort und schaue, ob das funktioniert.

Auch ist möglich, daß die PAM-Settings anders sind und der Benutzer doch nicht auf "cvs" gemappt wird.

Einfacher Test: Ein Spielverzeichnis 777 anlegen, irgendwas einchecken und die Attribute der entstandenen Datei ansehen.

Stimmt eigentlich das Home-Verzeichnis des cvs-Users?
 
Hi,

das einchecken funktioniert ja ohne Probleme, nur das Ausschecken halt nicht :-(

Dementsprechend scheinen die passwd Dateien ja korrekt zu seien.

Werde später mal den Trace probieren und das Ergebnis hier posten. Habe im Moment leider keinen Zugriff über SSH, wegen Firewall.

Gruß

Infomatrixx
 
Hier die Ausgabe von cvs -t checkout "/Test"

-> main: Session ID is ZRYiBZJPw0L4qUKt
-> main loop with CVSROOT=/srv/cvs/test
-> safe_location( where=(null) )
-> open_connection_to_server (:pserver:fabian@www.test.de:/srv/cvs/test)
-> Connecting to www.test.de(87.230.35.***):2401.
cvs checkout: warning: unrecognized response `S -> serve_directory (.)' from cvs server
cvs checkout: warning: unrecognized response `S -> dirswitch (., /srv/cvs/test/)' from cvs server
cvs checkout: warning: unrecognized response `S -> my_module (Test, Updating, NULL, NULL)' from cvs server
cvs checkout: warning: unrecognized response `S -> serve_directory (.)' from cvs server
cvs checkout: warning: unrecognized response `S -> dirswitch (., /srv/cvs/test/)' from cvs server
cvs checkout: warning: unrecognized response `S -> do_cvs_command (checkout)' from cvs server
cvs checkout: warning: unrecognized response `S -> server_notify()' from cvs server
S -> safe_location( where=(null) )
cvs [checkout aborted]: could not get working directory: Permission denied
S -> Lock_Cleanup()
S -> Simple_Lock_Cleanup()
S -> server_cleanup()
-> close_connection_to_server ()
 
Gibt es den User "fabian", hat er ein Home-Directory und kann er (bzw. die Gruppe cvsuser) dort schreiben?
Fall nein: selbe Frage für den User cvs.
Was mir noch einfällt: könne es ein Problem auf der Maschine sein, von der aus Du auscheckst?
 
Hi,

den User fabian gibt es nicht, nur den User cvs. Über die passwd wird fabian auf cvs gemappt...

Der Benutzer ist der Grupper cvsuser zugeordnet.

Habe es schon von mehreren Maschinen probiert. Über Eclipse und über Konsole. Immer das gleiche Resultat. Und wie gesagt der Commit und das Update funktionieren ja ohne Probleme.

Hier mal ein Trace vom Commit:
fabians-macbook:workspace fabian$ cvs -t commit freehep
-> main: Session ID is OKf9184sM2PjMUKt
-> main loop with CVSROOT=/srv/cvs/test
-> main loop with CVSROOT=/srv/cvs/BA
cvs commit: Examining freehep
cvs commit: Examining freehep/src
cvs commit: Examining freehep/src/hep
cvs commit: Examining freehep/src/hep/graphics
cvs commit: Examining freehep/src/hep/graphics/j3d
cvs commit: Examining freehep/src/hep/graphics/j3d/geant4
cvs commit: Examining freehep/src/hep/graphics/j3d/geant4/.svn
cvs commit: Examining freehep/src/hep/graphics/j3d/geant4/.svn/prop-base
cvs commit: Examining freehep/src/hep/graphics/j3d/geant4/.svn/text-base
cvs commit: Examining freehep/src/hep/graphics/j3d/geant4/doc-files
cvs commit: Examining freehep/src/hep/graphics/j3d/geant4/doc-files/.svn
cvs commit: Examining freehep/src/hep/graphics/j3d/geant4/doc-files/.svn/prop-base
cvs commit: Examining freehep/src/hep/graphics/j3d/geant4/doc-files/.svn/text-base
cvs commit: Examining freehep/src/org
cvs commit: Examining freehep/src/org/freehep
cvs commit: Examining freehep/src/org/freehep/j3d
cvs commit: Examining freehep/src/org/freehep/j3d/plot

Fabian
 
cvs hat als Home-Directory /srv/cvs/ - richtig?
Dann würde ich mal "chown cvs /srv/cvs /srv/cvs/test /srv/cvs/test/CVSROOT" versuchen.
 
same like before ...

cvs checkout: warning: unrecognized response `S -> serve_directory (.)' from cvs server
cvs checkout: warning: unrecognized response `S -> dirswitch (., /srv/cvs/test/)' from cvs server
cvs checkout: warning: unrecognized response `S -> my_module (Test, Updating, NULL, NULL)' from cvs server
cvs checkout: warning: unrecognized response `S -> serve_directory (.)' from cvs server
cvs checkout: warning: unrecognized response `S -> dirswitch (., /srv/cvs/test/)' from cvs server
cvs checkout: warning: unrecognized response `S -> do_cvs_command (checkout)' from cvs server
cvs checkout: warning: unrecognized response `S -> server_notify()' from cvs server
S -> safe_location( where=(null) )
cvs [checkout aborted]: could not get working directory: Permission denied
S -> Lock_Cleanup()
S -> Simple_Lock_Cleanup()
S -> server_cleanup()
-> close_connection_to_server ()
 
Back
Top