Próbuję utworzyć na VPS-ie z #linux #debian repozytorium #git, na którym mógłbym pracować z kilkoma osobami. Każdej utworzyłem konto w systemie, które następnie dodałem do grupy "projekt". Utworzyłem katalog /home/projekt.git, któremu nadałem właścicieli ja:projekt. Przeszedłem do niego i jako użytkownik ja wykonałem git init --bare --shared. Po tej operacji uprawnienia do niego są ustawione na drwxrws--- [EDIT: wcześniej zrobiłem jeszcze chmod o-rx projekt.git], a jego zawartość wygląda następująco:
projekt.git$ ls -l razem 32 drwxrwsr-x 2 ja ja 4096 kwi 30 22:25 branches -rw-rw-r-- 1 ja projekt 126 kwi 30 22:25 config -rw-rw-r-- 1 ja ja 73 kwi 30 22:25 description -rw-rw-r-- 1 ja projekt 23 kwi 30 22:25 HEAD drwxrwsr-x 2 ja ja 4096 kwi 30 22:25 hooks drwxrwsr-x 2 ja ja 4096 kwi 30 22:25 info drwxrwsr-x 15 ja projekt 4096 kwi 30 22:58 objects drwxrwsr-x 4 ja ja 4096 kwi 30 22:25 refs
Ja mogę robić pushe bez problemu, ale kolega należący do grupy projekt dostaje
Counting objects: 4, done. Delta compression using up to 8 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 275 bytes | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) fatal: Unable to create '/home/projekt.git/refs/heads/master.lock': Brak dost?pu fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly
Podejrzewam, że to dlatego, że właścicielem – grupą refs (i innych pewnie też) nie jest grupa projekt, tylko ja. Dlaczego git init część plików i katalogów utworzył tak, a część inaczej, i jak to naprawić? A może problemem jest coś innego?
@paranoiddd: 1. Jest. Sprawdziłem, wpisując groups kolega 2. W ten sposób nadam potrzebne uprawnienia do plików, które znajdują się tam obecnie, ale co z tworzonymi w przyszłości? Zaraz znowu będzie problem. 3. Tak myślałem ;P Ale który katalog byłby odpowiedni na coś takiego? Otworzyłem sobie nawet ściągawkę z opisem linuxowego drzewa katalogów z Wikibooks, ale żaden opisem nie pasował, więc w końcu wrzuciłem do /home ;P
@c9f24440e055136e5ee3dfa934d3933f: 2. Zauważ, że wszystkie GitHuby, GitLaby itd dają adres repo jako git@ - to właśnie po to, żeby nie było zamieszania w uprawnieniach 3. Ja bym wrzucał w /var albo /opt :D
Kolejny margines: https://gitlab.com/ - nielimitowana ilość prywatnych repozytoriów, bez bólu głowy :P
@canto: A te, które mają jako grupę "projekt", to są te, które powstały w wyniku mojego pusha? Jeśli tak, to przynajmniej wiem już, skąd różnica. Da się jakoś wymusić, żeby git init "działał jako" ja:projekt zamiast ja:ja? Czy zmiana tej grupy ręcznie wystarczy?
@paranoiddd: @canto: Wygląda na to, że ręczna zmiana wystarczyła, dzięki za pomoc ;) @majsterV2: Za Twój wkład też dziękuję ;P Odnosisz się do moich starych postów o problemach z konfiguracją OpenVPN?
#sejm #polityka I pomyśleć, że kiedyś rząd Millera został uwalony, bo Rywin poszedł do Michnika powołując się na polityków lewicy. A tu afera za aferą, fundusze z dupy i poparcie 35%. I wystarczy, że mniej ludzi pójdzie na wybory i znowu będą rządzić.
Po tej operacji uprawnienia do niego są ustawione na drwxrws--- [EDIT: wcześniej zrobiłem jeszcze chmod o-rx projekt.git], a jego zawartość wygląda następująco:
projekt.git$ ls -l
razem 32
drwxrwsr-x 2 ja ja 4096 kwi 30 22:25 branches
-rw-rw-r-- 1 ja projekt 126 kwi 30 22:25 config
-rw-rw-r-- 1 ja ja 73 kwi 30 22:25 description
-rw-rw-r-- 1 ja projekt 23 kwi 30 22:25 HEAD
drwxrwsr-x 2 ja ja 4096 kwi 30 22:25 hooks
drwxrwsr-x 2 ja ja 4096 kwi 30 22:25 info
drwxrwsr-x 15 ja projekt 4096 kwi 30 22:58 objects
drwxrwsr-x 4 ja ja 4096 kwi 30 22:25 refs
Ja mogę robić pushe bez problemu, ale kolega należący do grupy projekt dostaje
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 275 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
fatal: Unable to create '/home/projekt.git/refs/heads/master.lock': Brak dost?pu
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Podejrzewam, że to dlatego, że właścicielem – grupą refs (i innych pewnie też) nie jest grupa projekt, tylko ja.
Dlaczego git init część plików i katalogów utworzył tak, a część inaczej, i jak to naprawić? A może problemem jest coś innego?
1. Upewnij się, że kolega jest w grupie projekt ;)
usermod -a -G username_ziomeczka projekt
2. Zmień ownership ;)
chown -R $USER:project /home/projekt.git
A tak na marginesie - tworzenie folderów w /home które nie są folderami użytkowników to trochę brzydka praktyka ;)
1. Jest. Sprawdziłem, wpisując groups kolega
2. W ten sposób nadam potrzebne uprawnienia do plików, które znajdują się tam obecnie, ale co z tworzonymi w przyszłości? Zaraz znowu będzie problem.
3. Tak myślałem ;P Ale który katalog byłby odpowiedni na coś takiego? Otworzyłem sobie nawet ściągawkę z opisem linuxowego drzewa katalogów z Wikibooks, ale żaden opisem nie pasował, więc w końcu wrzuciłem do /home ;P
2. Zauważ, że wszystkie GitHuby, GitLaby itd dają adres repo jako git@ - to właśnie po to, żeby nie było zamieszania w uprawnieniach
3. Ja bym wrzucał w /var albo /opt :D
Kolejny margines: https://gitlab.com/ - nielimitowana ilość prywatnych repozytoriów, bez bólu głowy :P
to powinno pomóc.
@majsterV2: Za Twój wkład też dziękuję ;P Odnosisz się do moich starych postów o problemach z konfiguracją OpenVPN?