2010-12-28 19 views
2

Ich kann ein neues Projekt erstellen, indem Sie ein Java-Projekt über Eclipse auf meinem CVS-Server über das Internet importieren.Berechtigung verweigert für CVS-Server über ssh

Ich erstellte ein Verzeichnis als root namens/priv/cvs /. Dann rief ich "cvs -d/priv/cvs/init". Ich habe einen Benutzer namens cvs und eine Gruppe namens cvs erstellt. Das Repository gehört cvs und in Gruppen cvs.

Dann habe ich einen Benutzer "ben" erstellt und seine einzige Gruppe ist cvs. Ich "chrooted" den Benutzer "ben" Zugriff nur auf die cvs-Funktionalität, indem nicht den Zugriff auf den Server über ssh mit Passwort, nur mit einem öffentlichen Schlüssel, der in seinem Home-Verzeichnis auf dem Server in der Datei authorized_keys2 hinzugefügt wird.

die contect von authorized_keys2 ist wie folgt:

no-port-forwarding,no-X11-forwarding,command="/usr/bin/cvs server" ssh-rsa [public_key_content] rsa-key 

Verbindung zum Server ziemlich gut funktioniert. Eclipse fragt nach der Passphrase für den privaten Schlüssel, um eine Verbindung zum Server herzustellen. Die Authentifizierung funktioniert und Eclipse kann cvs-Befehle ausführen.

Aber beim Importieren meines Projekts mit Team-> Projekt freigeben. Ich erhalte den Fehler:

The server reported an error: Permission denied 
projectname: cvs server: cannot open /priv/cvs/CVSROOT/config: Permission denied 
projectname: Cannot access /priv/cvs/CVSROOT 

Das Zugriffsrecht für die cvs root (/ priv/cvs /) auf 770. gesetzt, was bedeutet, dass der Eigentümer, die cvs und die Gruppenteilnehmer der Gruppe cvs ist erlaubt zu lesen und zu schreiben.

Warum bekomme ich Zugriff verweigert?

Wenn ich den Ordner auf 777, was Lesen/Schreiben zu ALL bedeutet, dann funktioniert es. Aber ich will das nicht. Ich möchte nur cvs Benutzer lesen/schreiben in diesen Ordner? Gibt es etwas, das ich an Zugangsregeln missverstanden habe?

Eine Sache, ich vergaß: Alle Dateien und Verzeichnisse in/priv/cvs sind cvs chmodded: cvs und alle Ordner in/priv/cvs/haben zu 775 chmodded worden (lesen Sie durch alle, schreiben von Inhaber/Gruppe) .

Antwort

2

Eclipse verwendet wahrscheinlich einen nicht privilegierten Benutzer, um auf den Server zuzugreifen. Überprüfen Sie die Serverprotokolle auf fehlgeschlagene Zugriffsversuche, und verwenden Sie die CVS-Repository-Ansicht in Eclipse, um den Zugriff auf das Repository zu definieren.

Team/Share ist nicht die korrekte Methode, um einen ersten Checkout von CVS in Eclipse durchzuführen; Es ist für Eclipse vorgesehen, CVS-Informationen aus vorhandenen/aktiven Projektverzeichnissen abzurufen.

+0

In Eclipse ist der Benutzer auf "ben" gesetzt, der gleiche Benutzername wie der auf dem Server mit der authorized_keys2 Sache. Und ich importierte immer neue Projekte auf diese Weise. Aber diesmal ist es auf einem anderen Server und ich sehe keinen Unterschied. Ich habe versucht, das Repository mit dem CVS-Repository-Explorer in Eclipse zu erkunden, aber immer noch denselben Fehler. :-( – NovumCoder

+0

Noch eine Sache. Ich log als Ben und CVS mit dem Befehl su als root. Ich war in der Lage, den Inhalt der Konfigurationsdatei zu drucken und alle Dateien in CVSROOT aufzulisten. Aber versuchen es über Eclipse endet oben fehlerhaft Was zum Teufel? – NovumCoder

+1

Mist !! Ich musste Eclipse neu starten, so dass es für die vom privaten Schlüssel verwendete Passphrase reprompt. Jetzt funktioniert es. Auch wenn es jetzt funktioniert, bin ich total verwirrt. Keine Ahnung, was das Problem war. – NovumCoder

Verwandte Themen