[英]Using Git without Sudo in many accounts
如何在一個Ubuntu中的多個帳戶中使用沒有Sudo的Git?
我的Ubuntu有很多賬號。 新帳戶的創建使我無法訪問Git,沒有sudo。
我將所有者更改為我,masi,並將該組改為masi所屬的admin
。 我有Git的以下權限
800 -rwxrwxrwx 1 masi admin 813744 2009-02-20 23:01 /usr/bin/git
在嘗試使用Git時,我收到以下消息
git status
fatal: unable to create '.git/index.lock': Permission denied
我跑了find . -iregex ".*index.l.*
find . -iregex ".*index.l.*
返回沒有匹配,因此在鎖定系統時似乎沒有index.lock。我也運行相同的命令,但是sudo失敗了。
如果我正確理解您的問題,您需要授予幾個* nix用戶帳戶對同一git存儲庫的寫訪問權限。 使用git init
的--share
命令行參數應啟用此功能。 GitWiki對此有幾句話要說 。 這應該做的伎倆:
git --bare init --shared=all
如果您已經創建了存儲庫,則可以通過拋出此命令將其轉換為“共享存儲庫”:
git repo-config core.sharedRepository true
在您的存儲庫中,如moserei.de上的博客文章中所述 。
2014更新:這仍然是可能的,但命令已從repo-config更改為config。
git config core.sharedRepository true
Git意在分發。 因此,每個用戶都應該有一個他/她自己的獨立存儲庫。 上述方法與該方法相矛盾。 除此之外,我懷疑.git
目錄的權限。
我猜想.git
目錄的所有權是個問題。
您不應該使用來自不同用戶的一個源樹 - 這可能會導致問題。
git
可執行文件不是問題。 它應該由root擁有,並擁有755個權限。 ( -rwxr-xr-x
)
換句話說,您可以使用多個帳戶中的git,但不應共享一個工作目錄。
擁有任何可執行文件集的權限以便普通用戶可以覆蓋可執行文件是一個相當大的安全風險。 (嘗試使用調用rm -rf $HOME
的shell腳本覆蓋/usr/bin/git
。)
將權限更改回755並再次使root用戶擁有git。 (除非你使用dpkg-statoverride(8)
否則Ubuntu的包管理器無論如何都會重置下一次升級的權限)
我同意那些說多個用戶共享一個git存儲庫可能不是一個好主意的人。 如果您仍然認為有必要,請考慮設置一個新組,將保存存儲庫的目錄及其中的所有文件chgrp
到該組,並在目錄上設置setgid位。 ( git init
的--shared
參數也可以為你做一些。)然后,將所有用戶添加到應該具有提交權限的組中。
您可以使用驗證成員
members groupname
然后,您可以設置用戶名:groupname對的權限級別,
change the ownership
sudo chown -v -R username:groupname sprout
chmod -R g+w .git/*
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.