11

1つのUbuntuの複数のアカウントでSudoなしでGitを使用するにはどうすればよいですか?

私のUbuntuには多くのアカウントがあります。新しいアカウントを作成したことで、sudoなしでGitにアクセスできなくなりました。

オーナーを私、マシに、グループをマシ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.*したため、システムのロックにindex.lockがないようです。sudoでも同じコマンドを実行できませんでした。

4

5 に答える 5

18

私があなたの質問を正しく理解している場合は、複数の*nixユーザーアカウントに同じgitリポジトリへの書き込みアクセスを許可する必要があります。の--shareコマンドライン引数を使用するgit initと、これが有効になります。GitWikiには、これについて言うべきいくつかの言葉があります。これでうまくいくはずです:

git --bare init --shared=all

リポジトリをすでに作成している場合は、次のコマンドを実行することで、リポジトリを「共有リポジトリ」に変換できる場合があります。

git repo-config core.sharedRepository true

moserei.deのブログ投稿で言及されているように、リポジトリ内にあります。

2014年の更新:これは引き続き可能ですが、コマンドがrepo-configからconfigに変更されました。

git config core.sharedRepository true
于 2009-09-02T12:36:10.410 に答える
8

Gitは配布されることを目的としています。したがって、すべてのユーザーは自分自身の個別のリポジトリを持っている必要があります。上記の方法は、この方法論と矛盾します。それとは別に、私は.gitディレクトリの権限を疑っています。

于 2009-09-02T12:05:14.860 に答える
5

.gitディレクトリの所有権が問題だと思います。

異なるユーザーからの1つのソースツリーを使用しないでください。問題が発生する可能性があります。

git実行可能ファイルは問題ではありません。rootが所有し、755の権限を持っている必要があります。(-rwxr-xr-x

つまり、複数のアカウントからgitを使用できますが、単一の作業ディレクトリを共有しないでください。

于 2009-09-02T12:02:58.190 に答える
3

通常のユーザーが実行可能ファイルを上書きできるように実行可能ファイルセットのアクセス許可を持つことは、かなりのセキュリティリスクです。/usr/bin/git(を呼び出すシェルスクリプトで上書きしてみてくださいrm -rf $HOME。)

権限を755に戻し、gitをroot:rootが所有するようにします。(Ubuntuのパッケージマネージャーは、使用しない限り、とにかく次のアップグレードでアクセス許可をリセットしますdpkg-statoverride(8)

複数のユーザーが1つのgitリポジトリを共有するのは良い考えではないかもしれないと言う人たちに同意します。それでも必要だと思われる場合は、新しいグループ、chgrpリポジトリを保持するディレクトリ、およびその中のすべてのファイルをそのグループに設定し、ディレクトリにsetgidビットを設定することを検討してください。(の--sharedパラメーターgit initも、これの一部を実行する可能性があります。)次に、コミット権限を持つ必要があるグループにすべてのユーザーを追加します。

于 2009-09-04T08:23:47.897 に答える
0

を使用してメンバーを確認できます

members groupname

次に、username:groupnameペアのアクセス許可レベルを設定できます。

change the ownership
sudo chown -v -R username:groupname sprout
chmod -R g+w .git/*
于 2015-11-10T15:46:23.917 に答える