Impossibile accedere a "git / attributes"


95

Cosa significa avvertimento remote: warning: unable to access '/root/.config/git/attributes': Permission deniede quali implicazioni porta?

$git clone git://git.eclipse.org/gitroot/egit/egit.git
Cloning into 'egit'...
remote: warning: unable to access '/root/.config/git/attributes': Permission denied
remote: Counting objects: 57926, done.
remote: Compressing objects: 100% (11872/11872), done.
remote: Total 57926 (delta 30734), reused 56308 (delta 29136)
Receiving objects: 100% (57926/57926), 32.29 MiB | 1021 KiB/s, done.
Resolving deltas: 100% (30734/30734), done.
Checking out files: 100% (1483/1483), done.

Devo segnalare un potenziale problema di infrastruttura all'hoster?


Sei riuscito a risolverlo?
mu 無

@mu 無 No, sono riluttante a segnalare un bug sull'hosting su questo perché non ho ancora una risposta definitiva.
Basilevs,

Risposte:


198

Mi sono imbattuto in questa situazione io stesso. Dopo aver verificato che stava cercando in ~/.config/ho notato che il proprietario di quella cartella era root. L'ho cambiato in my_user_namee ha funzionato.

cd ~/
ls -al
<Noticed .config was owned by root, unlike everything else in $HOME>
sudo chown -R $(whoami) .config

Aiuta anche a conoscere la causa: questa directory viene creata la prima volta che esegui un programma che la utilizza. Se il comando è stato eseguito come root, causerà questo problema di autorizzazioni.

Ad esempio, se la ~/.configdirectory non esiste ancora e si esegue sudo htop, le directory ~/.confige ~/.config/htopverranno create e possedute da root. In seguito, un normale comando git non sarà in grado di accedere~/.config e darà l'avviso di cui sopra. (Credito: utente mehtunguh)

L' -Ropzione con chownè modificare le autorizzazioni in modo ricorsivo. Questo ti aiuterà se hai sottocartelle sotto~/.config


6
questo mi ha anche aiutato durante l'utilizzo della riga di comando di Linux in Windows 10 - grazie!
lukaszkups

1
questo è stato un grande risparmio di tempo
Prithvi Raj Vuppalapati

7
Aiuta anche a conoscere la causa: questa directory viene creata la prima volta che si esegue un programma che la utilizza. Se il comando è stato eseguito come root, causerà questo problema di autorizzazioni. Ad esempio, se la ~/.configdirectory non esiste ancora e si esegue sudo htop, le directory ~/.confige ~/.config/htopverranno create e possedute da root. Quindi un gitcomando normale non può accedere ~/.confige fornirà questo avviso.
mehtunguh

1
@mehtunguh Per favore considera di aggiungere questo alla mia risposta! Questa è un'informazione preziosa per essere sicuri.
BlackVegetable

@mehtunguh ho aggiunto la tua intuizione a questa risposta. Grazie ancora.
BlackVegetable

9

Penso che la tua HOMEvariabile ambientale non sia impostata correttamente.

Dal thread del gruppo Google ,

la variabile d'ambiente HOME è stata impostata in /rootmodo che guardasse /root/.gitconfigo /root/.config/git/configpoiché l'utente non privilegiato non aveva accesso /rootha generato un errore.

Quindi la soluzione era per me impostare l'env HOME sulla directory HOME dell'utente


2

Git sta cercando di leggere la configurazione da root invece della configurazione dell'utente. Controlla che le tue variabili di ambiente abbiano il set git config corretto o che il file .gitconfig nella tua cartella home sia accessibile.


Ci sono potenziali problemi causati da questo?
Basilevs,

2

Vai alla directory principale

cd ~/

Scrivi il codice seguente:

sudo chown -R username /Users/username

Dove username è il nome utente del tuo sistema.


Questa risposta a "Devo cambiare la proprietà della cartella .config che si trova nella mia home directory?" È pertinente. askubuntu.com/questions/852265/…
CodingMatters

0

Ho eseguito il problema simile e sono stato in grado di risolverlo sul lato server. git viene eseguito lì sotto uwsgi, quindi ho aggiunto nella configurazione di uwsgi la seguente riga:

env = HOME=/srv/git

dove / srv / git è di proprietà dello stesso uid con cui gira uwsgi e creato chmod u+rwX /srv/git Quindi, è necessario puntare la variabile HOME sul lato server per il processo che esegue git alla directory in cui questo processo avrà i permessi di lettura / scrittura / attraversamento.


0

Per Windows, potrebbe essere il caso in cui alcuni processi come CMD o client SSH aprissero una cartella che Git tenta di eliminare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.