git shell

Git disponuje omezeným shellem, který umožní udělat:
a) ještě lépe zabezpečený přístup k repozitáři přes ssh
b) bezpečný mechanismus pro posílání hotových webů na hloupý veřejný webserver, který zároveň slouží jako záloha verzí webu.
Pro bezpečný přístup na webserver omezíme přístup jen na git příkazy...

    $ chsh -s /usr/bin/git-shell
    $ mkdir $HOME/git-shell-commands
    $ cat >$HOME/git-shell-commands/no-interactive-login <<\EOF
    #!/bin/sh
    exit 128
    EOF
    $ chmod +x $HOME/git-shell-commands/no-interactive-login

V původním příkladu je před exit ještě řádek:

printf '%s\n' "$USER! blabla nemáš shell"
Ten vynechávám, protože případný útočník, který eventuálně získal SSH klíč, aspoň nebude vědět, proč ho server vykopnul...
Zdroj: http://www.git-scm.com/docs/git-shell



odkazy na tuto stránku: wiki:git:bezpečný mechanismus pro posílání hotových webů na hloupý veřejný webserver wiki:git