Többfelhasználós, hozzáférés-vezérelt Darcs

CSÉCSY László képe
in

Feladat: SSH-n csatlakozó felhasználók számára darcs hozzáférés biztosítása a következő feltételekkel:

  • csak ahhoz férjenek hozzá, amihez feltétlenül muszáj;
  • lehessen szabályozni, melyik felhasználó melyik repóhoz hogyan (csak olvasás vagy írás-olvasás) fér hozzá.

A megoldás kulcsa egy olyan wrapper, ami csak a megfelelő darcs parancsokat engedi használni; ez egyúttal az sftp-n való barangolást is kizárja. Beüzemelése triviálisan egyszerű: a csatolt szkriptet töltsük fel szerverünk /usr/local/bin könyvtárába darcs-shell néven, majd hozzunk létre egy közös (célszerűen darcs nevű) felhasználót, akinek a nevében az összes szerveroldali dolog futni fog. Ezen felhasználó shellje legyen /usr/local/bin/darcs-shell. A fejlesztői hozzáférések egyszerűen beállíthatóak: az adott fejlesztő publikus SSH kulcsát a darcs felhasználó ~/.ssh/authorized_keys2 fájljához adjuk hozzá, az alábbi trükkel:

command="darcs-shell fejlesztőnév" az_eredeti_ssh_kulcs

Az írható/csak olvasható hozzáférést az /usr/local/darcs/access fájl szabályozza, melynek formátuma (ne felejtkezzünk meg a záró perjelekről a repók elérési útjában):

fejlesztő1:/path/to/repo/:rw
fejlesztő2:/path/to/repo2/:r

A megvalósításban segítségemre volt Vajna Miklós és az ő git-shell2 szkriptje.

CsatolmányMéret
darcs-shell2.48 KB
Tartalom átvétel