在Linux中,Git pull遇到权限被拒绝怎么办?

8
当我执行git pull origin test时,会出现以下情况:
fatal: unable to connect to cache daemon: Permission denied

紧接着会提示输入Github的用户名和密码。该目录位于我的主文件夹 (~/www/software)下。你有什么想法吗?如果我使用sudo就可以操作,但我认为我在自己的主文件夹中不应该使用su!

这是ls -l的结果:

drwxrwxrwx 48 root    root      53248 Jan  3 12:10 application
-rw-rw-r--  1 andrewr andrewr 1458793 Jan  2 10:09 a.txt
-rw-rw-r--  1 andrewr andrewr     186 Jan  2 10:09 Desktop.ini
-rw-rw-r--  1 andrewr andrewr    1406 Jan  2 10:10 favicon.ico
-rw-rw-r--  1 andrewr andrewr    6858 Jan  2 10:10 fb.jpg
-rw-rw-r--  1 andrewr andrewr       2 Jan  2 10:10 format
-rw-rw-r--  1 andrewr andrewr     398 Jan  2 10:10 index.php
-rw-rw-r--  1 andrewr andrewr   16572 Jan  2 10:10 license.txt
-rw-rw-r--  1 andrewr andrewr    1390 Jan  2 10:10 loginscreen.php
-rw-rw-r--  1 andrewr andrewr    6424 Jan  2 10:10 md5_login.js
-rw-rw-r--  1 andrewr andrewr      65 Jan  2 10:10 phpinfo.php
-rw-rw-r--  1 andrewr andrewr    9202 Jan  2 10:10 readme.html
-rw-rw-r--  1 andrewr andrewr     101 Jan  2 10:09 README.md
-rw-rw-r--  1 andrewr andrewr     229 Jan  2 10:09 README.txt
-rw-rw-r--  1 andrewr andrewr  180467 Jan  2 10:10 svn.ico
-rw-rw-r--  1 andrewr andrewr      71 Jan  2 10:10 test.php
-rw-rw-r--  1 andrewr andrewr   46080 Jan  2 10:09 Thumbs.db
-rw-rw-r--  1 andrewr andrewr    4268 Jan  2 10:10 wp-activate.php
drwxrwxrwx  9 root    root       4096 Jan  2 10:10 wp-admin
-rw-rw-r--  1 andrewr andrewr   40272 Jan  2 10:10 wp-app.php
-rw-rw-r--  1 andrewr andrewr     274 Jan  2 10:10 wp-blog-header.php
-rw-rw-r--  1 andrewr andrewr    3982 Jan  2 10:10 wp-comments-post.php
-rw-rw-r--  1 andrewr andrewr    3444 Jan  2 10:10 wp-config.php
-rw-rw-r--  1 andrewr andrewr    3087 Jan  2 10:10 wp-config-sample.php
drwxrwxrwx  6 root    root       4096 Jan  2 10:10 wp-content
-rw-rw-r--  1 andrewr andrewr    2684 Jan  2 10:10 wp-cron.php
drwxrwxrwx  8 root    root       4096 Jan  2 10:10 wp-includes
-rw-rw-r--  1 andrewr andrewr    1997 Jan  2 10:10 wp-links-opml.php
-rw-rw-r--  1 andrewr andrewr    2546 Jan  2 10:10 wp-load.php
-rw-rw-r--  1 andrewr andrewr   27695 Jan  2 10:10 wp-login.php
-rw-rw-r--  1 andrewr andrewr    7777 Jan  2 10:10 wp-mail.php
-rw-rw-r--  1 andrewr andrewr     413 Jan  2 10:10 wp-pass.php
-rw-rw-r--  1 andrewr andrewr     334 Jan  2 10:10 wp-register.php
-rw-rw-r--  1 andrewr andrewr    9913 Jan  2 10:10 wp-settings.php
-rw-rw-r--  1 andrewr andrewr   18545 Jan  2 10:10 wp-signup.php
-rw-rw-r--  1 andrewr andrewr    3702 Jan  2 10:10 wp-trackback.php
-rw-rw-r--  1 andrewr andrewr    1834 Jan  2 10:10 x.htaccess.bak
-rw-rw-r--  1 andrewr andrewr    3266 Jan  2 10:10 xmlrpc.php

几乎所有的更改都是在 application 文件夹中完成的。

请返回以下命令的结果:ls -l ~/www/software - Billy Moon
3个回答

18
The problem is that git 无法连接到其凭据缓存(阅读http://git-scm.com/docs/git-credential-cache以获取更多信息)。
从文档中了解到:
缓存可通过Unix域套接字访问,由文件系统权限限制为当前用户。
所以您需要检查此域套接字的文件权限。通常它位于~/.git-credential-cache/socket,并更改它们以使其可被andrewr用户访问。

4
问题似乎出在您文件的所有者身上。看一下:
drwxrwxrwx 48 root root 53248 Jan 3 12:10 application 
...
drwxrwxrwx 9 root root 4096 Jan 2 10:10 wp-admin 

尽管这些目录对所有人都是可读、可写和可执行的,但其中的文件可能并非如此。此外,在您的主目录中拥有属于root的目录可能不是一个好主意。
如果在~/www/software内执行此命令,则应该解决问题。
chown -R andrewr:andrewr *

1
sudo chown -R ubuntu:ubuntu ~/.git-credential-cache/ 做到了。 - Yerk

0

这是由于git缓存权限问题造成的。

更改用户和组

chown -R 当前用户:用户组 ~/.cache/git/

chown -R 当前用户:用户组 .git/

您可以从以下位置获取当前用户信息:whoami


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接