Using Git without Sudo in many accounts

前端 未结 5 2065
说谎
说谎 2020-12-08 23:34

How can you use Git without Sudo in multiple accounts in one Ubuntu?

My Ubuntu has many accounts. The creation of new accounts has made Git inaccess

相关标签:
5条回答
  • 2020-12-08 23:52

    If I understand your question correctly, you need grant several *nix user accounts write access to the same git repository. Using the --share command line argument for git init should enable this. The GitWiki has a few words to say about this. This should do the trick:

    git --bare init --shared=all
    

    If you have already created your repository, you might be able to convert it to a "shared repository" by throwing this command:

    git repo-config core.sharedRepository true
    

    in your repository, as mentioned in a blog post at moserei.de.

    2014 update: This is still possible but the command has changed from repo-config to config.

    git config core.sharedRepository true
    
    0 讨论(0)
  • 2020-12-08 23:52

    You can verify members using

    members groupname
    

    Then you can set the permission level for the username:groupname pair,

    change the ownership
    sudo chown -v -R username:groupname sprout
    chmod -R g+w .git/*
    
    0 讨论(0)
  • 2020-12-08 23:59

    Having the permissions of any executable set so that a normal user can overwrite the executable is a considerable security risk. (Try overwriting /usr/bin/git with a shell script that calls rm -rf $HOME.)

    Change the permissions back to 755 and make git owned by root:root again. (Ubuntu's package manager would reset the permissions on the next upgrade anyhow unless you used dpkg-statoverride(8))

    I agree with those who say that it may not be a good idea to have multiple users share one git repository. If you still think that it is necessary, consider setting up a new group, chgrp the directory holding the repository and all the files therein to that group andset the setgid bit on the directories. (The --shared parameter to git init may do some of this for you, too.) Then, add all the users to the group that should have commit rights.

    0 讨论(0)
  • 2020-12-09 00:18

    Git is meant to be distributed. So, every user should be having a separate repository of his/her own. The above method contradicts this methodology. Apart from that, I suspect the permissions of the .git directory.

    0 讨论(0)
  • 2020-12-09 00:19

    I would guess the ownership of the .git directory are the problem.

    You shouldn't use one source tree from different users - it's likely to lead to problems.

    The git executable is not the issue. It should be owned by root, and have 755 permissions. (-rwxr-xr-x)

    In other words you can use git from multiple accounts, but you shouldn't share a single working directory.

    0 讨论(0)
提交回复
热议问题