2013-11-28 22 views
5

Git ile iletişim kurmak için git repo'yu uzak bir sunucuya kopyaladım. git fetch remote eser kullanarak, ama git push remote yazarken bu çıktıyı almak:git hatası "passwd dosyasında şu anki kullanıcıya bakamıyor: böyle bir kullanıcı yok" - bu ne anlama geliyor?

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 

Sunucum yönetici benim ssh kullanıcı chroot-hapishane içerisinde yapılandırıldığını söyledi. Bu hatayı çözmek için ne yapılabilir?

cevap

2

Bu hata mesajı wrapper.c tarafından döndürülür:

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; 
} 

/vs bir şifre girişi bulamaz common library getpwuid fonksiyonunu demektir Yani/git süreci denir altında kullanıcı hesabının passwd

nscd service bazı hizmetlerin nasıl çözüleceğini bilmiyordu.

Yöneticinizden, this article numaralı belgede gösterildiği gibi hesap şifreleme dizinini ($D olarak adlandırın) çift kez kontrol etmesini isteyin. Özellikle de $D/etc klasöründe:

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

Cevabınız için teşekkürler. Yönetici bütün bunları yaptı, ama hala çalışmıyor. Bu kullanıcıyı hangi kullanıcıya ihtiyaç duyduğunu söyleyen herhangi bir günlük dosyası var mı? Böylece bu kullanıcıyı/etc/passwd içine koyabilir? –

+0

@ C.S. İstemci tarafında, biraz daha fazla ipucu elde etmek için etkinleştirilen iz ile itebilirsiniz: 'GIT_TRACE = 1 git push'. Sunucu tarafında, uzaktan kumanda için kullanılan URL'ye bağlıdır: https veya ssh. Ancak, sunucunun (Apache veya sshd) günlüklerine bakmak da yardımcı olabilir. – VonC

+7

Varsayılan kullanıcı kimliğini doldurmak için kullanılan bu yöntem, kullanmaktan kaçınmak için kimliğinizi el ile ayarlayabilirsiniz: 'git config --global user.email" [email protected] "' 'git config --global user.name" Adınız "' Bu sorunu uzaktan LDAP aracılığıyla kimliği doğrulanmışken aldım, bu yüzden passwd dosyasında giriş yok – Eugene