2013-11-28 3 views
5

git repoをリモートサーバにクローニングし、sshを使って通信しました。 git fetch remote作品を使用して、私はgit push remoteを入力すると、私はこの出力を得る:gitエラー "passwdファイルの現在のユーザーを検索できません:そのようなユーザーはありません" - これはどういう意味ですか?

Counting objects: 242, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (184/184), done. 
Writing objects: 100% (215/215), 238.00 KiB | 0 bytes/s, done. 
Total 215 (delta 58), reused 0 (delta 0) 
fatal: unable to look up current user in the passwd file: no such user 
fatal: The remote end hung up unexpectedly 
fatal: The remote end hung up unexpectedly 

私のサーバー管理者は、私のsshユーザーがchrootの-jail内に構成されていることを述べています。このエラーを解決するために何ができましたか?

答えて

2

このエラーメッセージはwrapper.cによって返されます。

struct passwd *xgetpwuid_self(void) 
{ 
     struct passwd *pw; 

     errno = 0; 
     pw = getpwuid(getuid()); 
     if (!pw) 
       die(_("unable to look up current user in the passwd file: %s"), 
       errno ? strerror(errno) : _("no such user")); 
     return pw; 
} 

common library getpwuid機能は、Gitのプロセスが

と呼ばれるユーザーアカウント用の/ etc/passwdのパスワードのエントリが見つからないことを意味し

それはnscd serviceのようにいくつかのサービスを解決する方法を知らなかった。

this articleに示すように、管理者にアカウントジャイルディレクトリ($D)を再確認するように依頼してください。特にその$D/etcフォルダ:

cp -fv /etc/{group,prelink.cache,services,adjtime,shells,gshadow,shadow,hosts.deny,localtime,nsswitch.conf,nscd.conf,prelink.conf,protocols,hosts,passwd,ld.so.cache,ld.so.conf,resolv.conf,host.conf} $D/et 
+0

回答ありがとうございました。管理者はこれをすべて実行しましたが、まだ動作していません。 このユーザーを/ etc/passwdに入れるために、どのユーザーが必要かを教えてくれるログファイルはありますか? –

+0

@ C.S。クライアント側では、もう少し手がかりを持って起動されたトレースを押すことができます: 'GIT_TRACE = 1 git push'。サーバー側では、リモート用に使用されるURL(httpsまたはssh)に依存します。しかし、サーバー(Apacheまたはsshd)のログを調べることで、役立つこともあります。 – VonC

+7

デフォルトのユーザの身元を記入するために使用されるこの方法は、あなたの身元を手動で設定することができます: 'git config --global user.email" [email protected] " ' git config --global user.name "あなたの名前 "' リモートLDAP経由でユーザーを認証したときにこの問題が発生したので、passwdファイルにエントリがありませんでした – Eugene

関連する問題