DEVUAN/DEBIAN GIT y GITSERVICE
el git daemon solo da serviciio a el portocolo git:// .
- PAra todo desde debian Jeesie las rutas de git repos estan en /var/lib/git, pero antes de wheeze estan en /var/cache/git
- A menos que use backports, los paquetes git-daemon-sysvinit existen hasta wheeze sino desde jessie.
importante: las rutas y los repos
Aqui hay dos rutas de directorios importantes, la ruta base (a /var/lib/) y la ruta directorio repos de git (a /var/lib/git)
- base path cargara en ella la ruta que TENDRA repositorios;
/var/lib/
por default in Debian y debe ser solo una. - repo path sera la ruta que tendra los repositos, cada uno;
/var/lib/git
por default in Debian y pueden ser varias.
gitrepos
POR EL SERVER
requerimientos: activacion de backports
cat <<EOF > /etc/apt/preferences.d/prioritybackports Package: * Pin: release a=jessie-backports Pin-Priority: 900 Package: * Pin: release a=wheezy-backports Pin-Priority: 900 EOF
requerimientos: instalar paquetes
aptitude install git gitweb git-svn rsync git-daemon-sysvinit
configurando: git daemon
sed -i -r 's/GIT_DAEMON_ENABLE=false/GIT_DAEMON_ENABLE=true/' /etc/default/git-daemon chown -R gitdaemon:www-data /var/lib/git service git-daemon restart
configurando: git repos
service git-daemon stop mkdir -p /var/lib/git/gitrepos sed -i -r 's#/var/lib/git#/var/lib/gitrepos#g' /etc/default/git-daemon sed -i -r 's#/var/lib#/var/lib/git#g' /etc/default/git-daemon chown -R gitdaemon:www-data /var/lib/git service git-daemon restart
probando: git daemon y init repo1
su -s /bin/sh - gitdaemon cd /var/lib/git/gitrepos git init --bare --shared=0664 repo1.git Initialized empty shared Git repository in /var/lib/git/gitrepos/repo1.git/ echo "nuevo test repo" > repo1.git/description touch repo1.git/git-daemon-export-ok exit
El comando
touch git-daemon-export-ok
permite acceso sin autenticar o de lectura a cada repositorio. Ahora se puede probar clonado git con:
git clone git://<IPSERVER>/<basegitpath>/<reponame>Donde:
- IPSERVER es la ip de la maquina donde git-daemon sirve los repositorios git
- basegitpath es la “base path” de el git daemon, lo cambiamos a
/var/lib/git/
previamente. - reponame es el “nuevo test repo” en el base path, que creamos como
repo1.git
previamente.
tuneando: afinado, acceso lectura y notas
All read access: si se desea todos los repositorios se puedan acceder par alectura, se exportan por defecto:
Port redirection: Si tiene una red interna con servicores dedicados, el puerto que git sirve no es magico, y debe redireccionarse desde el acceso publico hasta el de la maquina que ejecuta git-daemon y sirve los repos
service git-daemon stop sed -i -r 's#GIT_DAEMON_OPTIONS=""#GIT_DAEMON_OPTIONS=" --export-all "#g' /etc/default/git-daemon service git-daemon restart
Port redirection: Si tiene una red interna con servicores dedicados, el puerto que git sirve no es magico, y debe redireccionarse desde el acceso publico hasta el de la maquina que ejecuta git-daemon y sirve los repos
securidad: restringir shell access y listas
no ssh - git-shell: usuarios con acceso al protocolo git tendran tambien permitido usar acceso shell ssh con el usuario gitdaemon, esto se restringe con
Whitelist access: Cada subdirectorio que son repositorios puede ser analizado al demonio git, como una lista blanca, por lo que puede hacer un archivo y analizar ese contenido al servicio git-daemon, usando el archivo
NEXT: part 2, gitweb and http trick access over gitweb
git-shell
:usermod -s /usr/bin/git-shell gitdaemon chsh -s /usr/bin/git-shell gitdaemon
Whitelist access: Cada subdirectorio que son repositorios puede ser analizado al demonio git, como una lista blanca, por lo que puede hacer un archivo y analizar ese contenido al servicio git-daemon, usando el archivo
/etc/default/git-daemon
y su parametro GIT_DAEMON_OPTIONS=””
pero es un dolor que se evita con un manejador de git como gogs o gitlab.NEXT: part 2, gitweb and http trick access over gitweb
Comentarios
Publicar un comentario