Getgroups Linux sistemi çağrısı nereden veri alıyor?


1

Giriş yaptığım zaman hata alıyorum bir hata ayıklama cannot find name for group ID 387. Bu grubun ne olması gerektiğini ve kullanıcımın neden onunla ilişkili olduğunu anlamaya çalışıyorum.

kullanma strace onu buldum getgroups bash başladığımda çağrılıyor ve dönüyor

getgroups(6, [20, 106, 387, 513, 2385, 2447]) = 6

Baktığımda /etc/group 387 grubu bulamadım. Fakat sorum şu: neden getgroups bu numarayı ilk etapta iade ederdi.

Ubuntu 12.04 kullanıyorum, ancak LDAP ile giriş yapıyorum. Aynı hesapla farklı bir makineye giriş yaptığımda, farklı bir numara listesi alıyorum ( getgroups(7, [106, 513, 515, 516, 519, 520, 2503]) = 7 ).

Bu yüzden bu bilgilerin kaynağını merak ediyorum getgroups sorgular. Sorunumun yerel ve LDAP grupları arasında bazı uyumsuzluklar olduğunu tahmin ediyorum, ama bunların hepsinin nasıl çalıştığından emin değilim.

Yanıtlar:


1

Farklı bilgi kaynakları ve bunların önceliği /etc/nssswitch.conf yapılandırma dosyası Bu NFC modüllerinin hangi fonksiyonlar gibi getgroups() veya getpwent() ve diğerleri kullanılır.

Gönderiniz, sisteminizin kullanıcılar ve gruplar için bir kaynak olarak bir LDAP dizini kullanmasını önerir, bu nedenle büyük olasılıkla gördüğünüz gruplar libnss_ldap modülü. Yapılandırmasına bağlı olarak /etc/nsswitch.confyerel olarak tanımlanmış gruplar, LDAP NSS modüllerinin geri verdiklerini geçersiz kılabilir. LDAP NSS modülleri ayrıca iki ana makineniz arasında farklı şekilde yapılandırılmış olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.