segunda-feira, 13 de junho de 2016

4.4 Git sur la servilo - Konfigurante la Servilo

4.4 Git sur la servilo - Konfigurante la Servilo (

Setting U)

Ni marŝas tra la starigadon SSH aliro sur la servilo flanko. En ĉi tiu ekzemplo, vi uzos la authorized_keys metodo por aŭtentikigi viaj uzantoj. Ni ankaŭ supozu, ke vi uzas norman Linukso distribuo kiel Ubuntu. Unue, oni kreas git uzanto kaj .ssh dosierujo por ke uzanto.
  $ Ŝvitas adduser git
 $ Su git
 $ cd
$    mkdir .ssh && chmod 700 .ssh
 $ Tuŝi .ssh / authorized_keys && chmod 600 .ssh / authorized_keys 
Sekva, necesas aldoni iun ellaboranto SSH publikajn ŝlosilojn al la authorized_keys dosieron por la git uzanto. Ni supozu vi havas iuj fidindaj publikajn ŝlosilojn kaj savis ilin temporal dosierojn. Denove, la publikaj ŝlosiloj aspektas tiel:
  $ Cat /tmp/id_rsa.john.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L
ojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4k
Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez
Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv
O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq
dAv8JggJICUvax2T9va5 gsg-keypair 
Vi nur postglui al la git uzanto authorized_keys dosieron en lia .ssh dosierujo:
  $ Cat /tmp/id_rsa.john.pub >> ~ / .ssh / authorized_keys
 $ Cat /tmp/id_rsa.josie.pub >> ~ / .ssh / authorized_keys
 $ Cat /tmp/id_rsa.jessica.pub >> ~ / .ssh / authorized_keys 
Nun, vi povas agordi malplena dosieraro por ili kuras git init kun la --bare eblo, kiu inicializa la deponejo sen laboranta dosierujo:
  $ cd / opt / git
 $ Mkdir project.git
 $ cd project.git
 $ Git init --bare
Initialized empty Git repository in /opt/git/project.git/ 
Tiam, Johano, Josie, aŭ Jessica povas puŝi la unua versio de lia projekto en tiu deponejo aldonante ĝin kiel fora kaj puŝante supren branĉo. Notu ke iu devas alkanonadi sur la maŝino kaj krei nudajn enciklopedio ĉiufoje vi volas aldoni projekton. Ni uzu gitserver kiel la gastignomon de la servilo sur kiu vi instalis vian git uzanto kaj deponejo. Se vi uzas gxin interne, kaj vi agordi DNS por gitserver atentigi al tiu servilo, tiam vi povas uzi la komandojn preskaux kiel estas (supozante ke myproject estas ekzistanta projekto kun dosieroj en ĝi):
  # Johanon 's computer
 $  cd myproject
 $  git init
 $  git add .
 $  git commit -m ' komenca commit '
 $ Git fora aldonu origino git @ gitserver: /opt/git/project.git
 $ Git puŝo origino majstro 
Ĉe tiu punkto, la aliaj povas kloni ĝin kaj puŝi ŝanĝojn reen same facile:
  $ Git clone git @ gitserver: /opt/git/project.git
 $ cd projekto
 $ Vim README
 $ Git commit -AM 'fix for the README file'
 $ Git puŝo origino majstro 
Kun tiu metodo, vi povas rapide akiri legita / skribi Git servilon supren kaj kurante por plenmano de programistoj.
Notu ke nuntempe ĉiuj tiuj uzantoj povas ankaŭ eniri ankaŭ la servilan kaj akiri ŝelon kiel la git uzanto. Se vi volas limigi tion, vi devos ŝanĝi la ŝelon por io alia en la passwd dosiero.
Vi povas facile limigi la git uzanto nur faras Git aktivecoj kun limigita ŝelo ilo nomita git-shell kiu venas kun Git. Se vi povas tion kiel viaj git uzanto login shell, tiam la git uzanto povas havi normalan ŝelo aliro al via servilo. Uzi tiun, specifi git-shell anstataŭ bash aŭ csh por via uzanto salutnomo ŝelo. Fari tion, vi devas unue aldoni git-shell al /etc/shells se ĝi ne jam ekzistas:
  $ Cat / etc / shells # see if `git-shell` is already in there. If not... # see if `git-shell` is already in there. If not...
 $ Kio git-ŝelo # make sure git-shell is installed on your system.
 $ Ŝvitas vim / etc / shells # and add the path to git-shell from last command 
Nun vi povas redakti la ŝelon por uzanto uzante chsh <username> :
  $ Ŝvitas chsh git # and enter the path to git-shell, usually: /usr/bin/git-shell 
Nun la git uzanto povas nur uzi la SSH konekto puŝi kaj tiri Git deponejoj kaj ne povas alkanonadi sur la maŝino. Se vi provos, vi vidos salutnomon malakcepto tiel:
  $ Ssh git @ gitserver
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to gitserver closed. 
Nun Git reto komandoj daŭre funkcios ĝuste fajna sed la uzantoj ne povos akiri ŝelo. Kiel la eligo ŝtatoj, vi povas ankaŭ agordi dosierujo en la git uzanto hejmo dosierujo kiu customizes la git-shell ordonas iom. Ekzemple, vi povas limigi la Git ordonas ke la servilo akceptos aŭ vi povas personecigi la mesaĝon ke uzantoj vidi se ili provas SSH en tia. Kuri git help shell por pliaj informoj pri agordigo la ŝelo.

Nenhum comentário:

Postar um comentário