gitosis nedir? gitosis, basitçe, git adlı sürüm yönetimi yazılımı için kullanılabilecek bir yetkilendirme yönetim listesidir. Bir git deposuna sahip olduğunuzda, bu depoya kimlerin erişebileceğini ayarlayabilmeniz için bir sürü yol vardır. Örneğin deponuzu yalnızca okunabilir olarak git:// protokolü üzerinden sunabilirsiniz. Öte yandan depoya yazma hakkı söz konusu olduğunda kimin, nasıl deponuza erişeceği önem kazanır. Genellikle herkesin yazmasına ve dolayısıyla depomuzu mahvetmesine izin veremeyiz. Bu amaçla geliştirilmiş yetkilendirme yollarından bazıları:
gitosis tam olarak ne yapar? gitosis ile sisteminizde tanımlı tek bir kullanıcı ile deponuzu indirebilir ve gönderim yapabilirsiniz. Deponuza yazma hakkı olacak her kullanıcı için birer SSH hesabı açmak zorunda kalmazsınız. Aşağıda da bahsettiğim paketi kurduğunuzda, sisteminizde ev dizini /srv/gitosis/ olan, gitosis adında bir sistem kullanıcısı oluşturulur. Depolarınıza erişecek kullanıcılar tüm işlemlerini bu kullanıcı üzerinden yaparlar.
gitosis nasıl kurulur? AUR'daki gitosis-git paketimi kullanabilirsiniz. Gerekli dosyaları indirebilir ve makepkg ile paketi derleyebilir ya da yaourt gibi kolay kurulum araçlarını tercih edebilirsiniz. gitosis'i derleyebilmek ve kurabilmek için sisteminizde git, python ve setuptools adlı paketlerin kurulu olması gerekiyor. Bu paketler PKGBUILD dosyasında da birer bağımlılık olarak bulunduklarından uyguladığınız kurulum metoduna göre muhtemelen otomatik olarak kurulacaklardır. Paket kurulduktan sonra, /usr/share/doc/gitosis dizini altında bir takım örnek yapılandırma dosyaları bulabilirsiniz.
gitosis-admin deposunun oluşturulması gitosis'in çalışabilmesi için öncelikle bir SSH anahtar çifti oluşturmalı (ya da varolanı kullanmalı) ve genel anahtarınızı gitosis'in ev dizininde (/srv/gitosis) gitosis-admin deposunu oluşturmak için kullanmalısınız.
gitosis-admin deposu gitosis-admin içinde tüm depoların izinlerini ve bu izinlere sahip kullanıcıların anahtarlarını bulunduran bir git deposudur. gitosis ayarlarını değiştirmek, depo ya da kullanıcı ekleyip çıkarmak gibi işlemler için tek yapmanız gereken, deponun kopyasını indirmek ve normal bir git deposunda yapacağınız gibi istediğiniz değişiklikleri yapmaktan ibaret... Yapılandırmayla işiniz bittiğinde, değişiklikleri teslim etmeniz ve (depoyu indirdiğiniz) uzaktaki depoya göndermeniz gerekir.
depoların yapılandırılması gitosis.conf [gitosis]
keydir keydir, kullanıcıların genel anahtarlarının bulunduğu dizindir. Bazı anahtarlar oluşturulmaları esnasında makine adına sahip olabilirler; dolayısıyla kullanici@makine.pub şeklinde bir isme sahip olabilirler. İsmi bu şekilde olan anahtarlar, gitosis.conf dosyası içinde yine bu şekilde tanımlanmalıdır. Kullanıcı grupları tanımlamak ve bu grupları depo üyesi olarak kullanmak tavsiye edilen bir yöntemdir. Yeni kullanıcıları yetkilendirmek için anahtarları da git deposuna eklenmeli ve teslim edilip uzaktaki sunucuya gönderilmelidir.