Howto: Apache mit SVN sowie ACL + Migration

Im folgenden ist beschrieben, wie man einen SVN-Server mit HTTP-Zugang einrichtet und anschliessend ein vorhandenes Repository auf diesen neuen Server umzieht. Die Anleitung bezieht sich auf einen Ubuntu Server, es sollte sich jedoch auf Debian Systemen alles analog verhalten.

Zuerst wird die benoetigte Software installiert:

apt-get install subversion libapache2-svn

Danach werden die erforderlichen Ordnerstrukturen angelegt:

mkdir /srv/svn
mkdir /srv/svn/repository
 
chown www-data:www-data /srv/svn/repository
chmod 770 /srv/svn/repository

Als naechstes wird die Datei /etc/apache2/mods-available/dav_svn.conf entsprechend konfiguriert. Hier werden verschiedene Dinge eingestellt, unter anderem fuer die Zugangsbeschraenkungen und ACLs:

<Location /svn>
  DAV svn
  SVNParentPath /srv/svn/repository
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /srv/svn/dav_svn.passwd
  AuthzSVNAccessFile /srv/svn/dav_svn.authz
  Require valid-user
</Location>

Nun wird in der /srv/svn/dav_svn.passwd ein neuer Benutzeraccount angelegt, der Zugriff auf das Repository bekommen soll:

htpasswd -c /srv/svn/dav_svn.passwd USERNAME

Und in der /srv/svn/dav_svn.authz die entsprechenden ACL-Rechte gesetzt:

[example:/]
USERNAME = rw

Zum Schluss wird das Repository migriert. Dafuer muss auf dem alten Server ein entsprechender Repository-Dump erzeugt, und auf den neuen Server kopiert werden:

svnadmin dump /path/to/repository/foobar > foobar.dump
scp foobar.dump user@example.net:

Auf dem neuen Server wird nun ein neues Repository angelegt und mit dem vorher erstellten und kopierten Dump befuellt. Damit es die richtigen Rechte hat, wird es als Benutzer www-data gemacht

cd /srv/svn/repository
su www-data
svnadmin create foobar
svnadmin load foobar < foobar.dump

Das wars! Ab nun kann man auf das Repository auf den neuen Server schwenken und damit arbeiten. In diesem Beispielfall koennte es das folgende sein:

http://example.net/svn/foobar

HowTo: Windows Desktop read only / roaming Profiles

Problem: Wir haben Laborrechner, an denen ein Benutzeraccount fuer viele User und verschiedene Rechner moeglich ist. Die Anmeldung mit dem Benutzeraccount ist auf die Laborrechner beschraenkt (vgl. Blogeintrag: Samba/LDAP: Benutzeraccount auf Rechner beschraenken). Dadurch das viele User den Account gemeinsam nutzen muellt der Desktop sehr schnell zu und die Anmeldung wird unsagbar langsam.

Loesung: Den Desktop schreibgeschuetzt machen um ein weiteres zumuellen zu verhindern. Dazu…

Wenn man bei einem Benutzeraccount mit roaming Profiles den Windows Desktop auf read only setzen moechte, muss die folgende Zeile in die netlogon.bat fuer den User eingefuegt werden:

cacls "%USERPROFILE%\desktop" /E /P %USERNAME%:R

Damit wird beim Anmelden an den Rechner in der lokalen Kopie des Profils der Ordner „Desktop“ mit NTFS-ACLs auf read only gesetzt.

Wenn man nun aber ebenfalls die Option „Benutzer bei Fehlschlag des servergespeicherteten Profils abmelden“ aktiviert hat, ist eine weitere Anmeldung nicht mehr moeglich, da der Kopiervorgang vom servergespeicherten Profil/Desktop in die lokale Kopie/Desktop nicht mehr moeglich ist, da der Ordner bereits Schreibgeschuetzt ist. Eine Abhilfe schafft dort die Option „Verzeichnisse aus servergespeichertem Profil ausschliessen“ die man aktivieren und als Ordner „Desktop“ angeben muss.