UID uyumsuzluğu olan sistemlerde NFSv4 UID eşlemesini nasıl yapabilirim?


11

Üç Ubuntu sistemli bir laboratuvarda çalışıyorum ve bazı dosya sistemlerini NFS üzerinden çapraz bağlamak istiyorum. Bununla birlikte, sistemler aynı kullanıcı adlarından bazılarına sahip olsa da, üç sistem ayrı ayrı kurulduğundan UID'ler ve GID'ler eşleşmez. Bir NFS dosya sistemini bir sistemden diğerine bağladığımda sahiplik yanlış görünüyor. Örneğin, UID 1000 sunucu1 üzerinde alice ise ve aynı UID, 1000, sunucu2 üzerinde bob ise, sunucu1 sunucu2'nin dışa aktarılan dosya sistemini bağladığında, bob'un dosyaları alice'ye ait gibi görünür.

NFS (v4) 'ün UID'leri sunucular arasında ilişkili kullanıcı adları ile dönüştürmesinin herhangi bir yolu var mı? Bunun için, Kerberos, LDAP veya NIS'e, böyle basit bir görev için büyük bir overkill gibi görünen ve bu sistemler merkezi olarak yönetilmediği için mümkün olmayan birçok referans gördüm. Bu bağlantı , sorduğum şeyin imkansız olduğunu gösteriyor. Doğru mu?

Düzenleme: Ben /etc/idmapd.confdüşünmek veya internette bulabildiğim her yapılandırma denedim ve idmapd süreci açıkça çalışırken, şimdiye kadar NFS hiç kullanmak için herhangi bir girişimde olduğunu herhangi bir kanıt görmedim ve NFS bağlarında bildirilen kullanıcı kimlikleri üzerinde hiçbir etkisi olmadı.


1
Sizin için en kolay şeyin tüm eşyalarınızı sıraya koymak olduğuna inanıyorum. Yalnızca üç kutunuz olduğu için geçerli kimlik doğrulama düzeninizle kalabilir, ancak tüm kullanıcıların UID'lerini / GID'lerini kutularınızla senkronize etmeniz gerekir. bu aslında zor bir iş değil.
Serge

Evet, sonunda bunu yaptım.
Ryan

Yanıtlar:


5

Merkezi bir kullanıcı yönetimi olmadan, gördüğüm "en iyi" yol, tüm sunucuları her kullanıcı için aynı GID ve UID'yi kullanmaya zorlamanızdır. Şimdi ... Sadece dosyalar ve / veya dizinler hakkında konuşuyorum.

Bu durumda ne yapacağım:

  • Halen kullanılmakta olan her bir UID ve GID'yi kaydedin.
  • Düzen /etc/passwdve /etc/grouptüm sunucularda gruplarla eşleşen ve. Tercihen yeni UID'lere ve GID'lere göre, bir sonraki adım daha hızlı olacaktır
  • Bunu çalıştırın (biraz zaman alacak):

    find / -group <OLD_GID> -exec chgrp <NEW_GID> '{}' \+
    find / -user  <OLD_UID> -exec chown <NEW_UID> '{}' \+
    

Ummm, "find" deyimi kök dizinden başlıyor. Komut, sistemdeki her dizinin sahipliğini değiştiriyor. Bu komutlarda önerilen değişiklikler sistemdeki her dosyayı içerir. Bu komutun çalıştığı dizinleri sınırlamanızı öneririm yoksa çok kötü bir gün geçirirsiniz.

2
Find man kaynağından: -group gname Dosya gname grubuna aitse doğrudur. Gname sayısalsa ve grup (4) veritabanında görünmüyorsa, grup kimliği olarak alınır.
41

1

NFSv4 kimlik eşleştirmeyi destekler. Etkinleştirildiğinde, NFS sayısal kimlikler yerine kullanıcı adlarını iletir. Kullanıcı adları ana bilgisayardaki uids ile eşlendiğinden, aynı kullanıcı için farklı sayısal kullanıcı kimliğine sahip ana makineler sorun değildir.

Kimlik eşleme her zaman Kerberos güvenlik modlarında ( sec=krb5) kullanılır.

Kimlik eşleme AUTH_UNIX (varsayılan sec=sys) modunda da kullanılabilir. Yanıt ayrıntıları için yapılandırma ayrıntılarını açıkladım: NFSv4 idmap sec = sys ile çalışma nasıl .

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.