「su user」が「git push」を使用すると、「致命的:計算できません:権限が拒否されました」と表示されます。

「su user」が「git push」を使用すると、「致命的:計算できません:権限が拒否されました」と表示されます。

たくさんあります設定この質問について:

rpi5.local2つのユーザーアカウントを持つホスト()があります:picake

私はナビゲートしたいと思い、「サーバー/ソース」リポジトリを「所有」するためのアカウントを作成gitしました。cakeユーザーとしてcake名前がサブフォルダーであるフォルダー()/home/cakeを作成します。を使用してこのリポジトリを初期化するプロセスを経ました。git-srvprojectAgit init --bare

最初は、projectA他のホスト()からサーバーのリポジトリを「入力しました」rpi4b.local。次の順序で、pushSSHを介してホスト上の呼び出されたフォルダからリポジトリにいくつかのファイルを編集しました。Aprojectraspberrypi4b.localprojectA

$ hostname
rpi4b.local
$ pwd
/home/pi/Aproject
$ git push -u ssh://[email protected]/home/cake/git-srv/projectA.git

これは素晴らしい作品です。

ユーザーpiとしてcloneリポジトリprojectAを。/home/pi/XYZcommit/home/pi/XYZpush

$ hostname
rpi5.local
$ pwd
/home/pi/XYZ
$ git push -u /home/cake/git-srv/projectA.git

この取り組みによってエラーが発生しました。

...
error: remote unpack failed: unable to create temporary object directory
To /home/cake/git-srv/projectA.git
 ! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to '/home/cake/projectA.git'

このエラーを調べた後、私はこれがエラーであると結論付けました。特権piとの間に問題がありますcake。私調べた解決策はsu cakeユーザーとしてpiそれをやり直してみpushました。最後に、私の質問は次のとおりです。

$ whoami
cake
$ hostname
rpi5.local
$ pwd
/home/pi/XYZ
$ git push -u /home/cake/git-srv/projectA.git
fatal: failed to stat '/home/pi/motd.git': Permission denied

この場合、どういう意味ですかfailed to stat?簡単な方法がありますか?解決策

答え1

「数え切れない」とは電話を意味します。statエラーを返します。つまりこれを実行しているユーザーにgitアクセス権がありません。これは、ユーザーにアクセス権がない/home/pi/motd.gitためです。cake/home/pi

この場合、最も簡単な方法は正しい権限セットを見つけるのではなくSSHを再利用することです(同じシステムでもgit push ssh://git@localhost:/home/cake/git-srv/projectA.gitgit push ssh://cake@localhost:git-srv/projectA.git

関連情報