Domanda

Come si può utilizzare Git senza Sudo a più account in un unico Ubuntu?

Il mio Ubuntu ha molti conti. La creazione di nuovi account ha reso inaccessibile Git da me, senza sudo.

Ho cambiato il proprietario di essere me, Masi, e il gruppo ad essere admin dove il Masi appartiene. Ho le seguenti autorizzazioni per Git

800 -rwxrwxrwx 1 masi admin 813744 2009-02-20 23:01 /usr/bin/git

ottengo il seguente messaggio nel tentativo di usare Git

git status
fatal: unable to create '.git/index.lock': Permission denied

Corro find . -iregex ".*index.l.* che restituisce nessun risultato così non sembra esserci alcuna index.lock nel blocco del sistema. Corro lo stesso comando anche con sudo senza successo.

È stato utile?

Soluzione

Se ho capito bene la tua domanda, è necessario concedere diversi * nix account utente l'accesso in scrittura allo stesso repository git. Utilizzando l'argomento della riga di comando per --share git init dovrebbe permettere questo. Il GitWiki ha qualche parola da dire su questo . Questo dovrebbe fare il trucco:

git --bare init --shared=all

Se è già stato creato il repository, si potrebbe essere in grado di convertirlo in un "repository condiviso" lanciando questo comando:

git repo-config core.sharedRepository true

nel repository, come indicato nel noreferrer un post a moserei.de .

2014 update: Questo è ancora possibile, ma il comando è cambiato da repo-config per config.

git config core.sharedRepository true

Altri suggerimenti

Git è pensato per essere distribuito. Quindi, ogni utente dovrebbe essere avere un repository separata della sua / il suo. Il metodo sopra contraddice questa metodologia. A parte questo, ho il sospetto che i permessi della directory .git.

Direi la proprietà della directory .git sono il problema.

Non si deve usare un albero di origine da diversi utenti - è probabile che portare a problemi

.

L'eseguibile git non è il problema. Dovrebbe essere di proprietà di root, ed avere i permessi 755. (-rwxr-xr-x)

In altre parole è possibile utilizzare git da più account, ma non si deve condividere una singola directory di lavoro.

Avere i permessi di ogni set di file eseguibile in modo che un utente normale può sovrascrivere il file eseguibile è un notevole rischio per la sicurezza. (Prova sovrascrivendo /usr/bin/git con uno script di shell che chiama rm -rf $HOME.)

Modifica le autorizzazioni di nuovo a 755 e fare git di proprietà di root: root di nuovo. (Gestore di pacchetti di Ubuntu avrebbe reimpostare le autorizzazioni per il prossimo aggiornamento in ogni caso a meno che non si è utilizzato dpkg-statoverride(8))

Sono d'accordo con chi dice che non può essere una buona idea avere più utenti di condividere un unico repository git. Se ancora pensate che sia necessario, prendere in considerazione la creazione di un nuovo gruppo, chgrp la directory che contiene il repository e tutti i file in essa a quel gruppo andset il bit setgid sulle directory. (Il parametro --shared a git init può fare un po 'di questo per voi, anche.) Quindi, aggiungere tutti gli utenti al gruppo che dovrebbe avere impegnarsi diritti.

È possibile verificare i membri utilizzando

members groupname

Quindi è possibile impostare il livello di autorizzazione per il nome utente: coppia di groupname,

change the ownership
sudo chown -v -R username:groupname sprout
chmod -R g+w .git/*
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top