2

現在、ローカル ディスクに Git リポジトリがあります。それらはグループによって共有され、SSH (git-shell を使用) 経由でアクセスされます。

スペースの問題のため、リポジトリを NAS 上の NFS 共有に移動したいと考えています。私はこれを実験しており、奇妙な問題に遭遇しました。まったく同じパーミッションを持つ新しい (そしてむき出しの) リポジトリは問題なく複製できますが、変更のプッシュ (touch foo && git add foo && git commit && git push origin master) は「Couldn't set refs/heads/master」というエラーで失敗します。 」および「書き込みに失敗しました」。

ここで、ローカル ディスクでこのシナリオを繰り返すと、refs/heads/master はユーザーがプッシュしたものによって所有されます。逆に、NFS 共有では、その所有者をプッシュしようとしているユーザーに変更しても、エラーはスローされません。ただし、どちらの場合も、ユーザーは、リポジトリ全体を所有し、グループの書き込み権限を持つグループのメンバーです。さらに、このグループのメンバーであるユーザーとして SSH を使用してログインすると、NFS 共有とローカル ディスクの両方で、(予想どおり) refs/heads/master にアクセスできます。

その結果、私はここで途方に暮れています。グループのアクセス許可により、ユーザーが refs/heads/master を上書きできるようになっているため、別のファイル所有者がプッシュを失敗させる理由がわかりません。さらに、そのファイルに chmod 777 があっても、ファイルを chown しない限り、プッシュは失敗します。

誰かがこの奇妙さに光を当てることができれば、私は最も感謝しています. 前もって感謝します!

4

1 に答える 1

2

ああ、くそ。NAS は、すべてのディレクトリにスティッキー ビットを設定して、アクセス許可に対して奇妙なことを行っています。これは動作を説明します。追加の chmod で問題が解決しました。

于 2011-01-13T01:10:32.617 に答える