CentOS 6 + LDAP + NFS. Dosya sahipliği “hiç kimseye” takılmadı


11

Birkaç gün boyunca CentOS 6'da LDAP kimlik doğrulaması ve NFS dışa aktarılan ev dizinlerini almaya çalışıyorum. Şimdi LDAP'deki kullanıcı adını ve şifreyi kullanarak istemci makineye giriş yapabileceğim noktaya geldim. İstemcide, / home ve / opt, fstab'a NFS üzerinden bağlanır. Ancak, / opt ve / home dosyalarındaki her dosya nobody:nobodyistemcide (uid: 99, gid: 99) bulunur.

Ancak benim uid ve gid düzgün ayarlanmış gibi görünüyor:

-bash-4.1$ id
uid=3000(myusername) gid=3000(employees) groups=3000(employees)

Başka neleri kontrol edebilirim? İşte istemcimdeki bazı yapılandırma dosyaları:

/etc/nsswitch.conf

passwd:     files sss
shadow:     files sss
group:      files sss

hosts:      files dns

bootparams: nisplus [NOTFOUND=return] files

ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files

netgroup:   files sss

publickey:  nisplus

automount:  files ldap
aliases:    files nisplus

/etc/sssd/sssd.conf

[sssd]
config_file_version = 2
services = nss, pam

domains = default
[nss]

[pam]


[domain/default]
auth_provider = ldap
ldap_id_use_start_tls = True
chpass_provider = ldap
cache_credentials = True
krb5_realm = EXAMPLE.COM
ldap_search_base = dc=mycompany,dc=com
id_provider = ldap
ldap_uri = ldaps://server.subdomain.mycompany.com
krb5_kdcip = kerberos.example.com
ldap_tls_cacertdir = /etc/openldap/cacerts

# Configure client certificate auth.
ldap_tls_cert = /etc/openldap/cacerts/client.pem
ldap_tls_key = /etc/openldap/cacerts/client.pem
ldap_tls_reqcert = demand

/ Etc / fstab

/dev/mapper/vg_main-lv_root /                       ext4    defaults        1 1
UUID=4e43a15d-4dc0-4836-8fa6-c3445fde756c /boot                   ext4    defaults        1 2
/dev/mapper/vg_main-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
storage1:/nas/home  /home  nfs   soft,intr,rsize=8192,wsize=8192
storage1:/nas/opt  /opt  nfs   soft,intr,rsize=8192,wsize=8192

authconfig çıktısı:

[root@test1 ~]# authconfig --test
caching is disabled
nss_files is always enabled
nss_compat is disabled
nss_db is disabled
nss_hesiod is disabled
 hesiod LHS = ""
 hesiod RHS = ""
nss_ldap is enabled
 LDAP+TLS is enabled
 LDAP server = "ldaps://server.subdomain.mycompany.com"
 LDAP base DN = "dc=mycompany,dc=com"
nss_nis is disabled
 NIS server = ""
 NIS domain = ""
nss_nisplus is disabled
nss_winbind is disabled
 SMB workgroup = ""
 SMB servers = ""
 SMB security = "user"
 SMB realm = ""
 Winbind template shell = "/bin/false"
 SMB idmap uid = "16777216-33554431"
 SMB idmap gid = "16777216-33554431"
nss_sss is disabled by default
nss_wins is disabled
nss_mdns4_minimal is disabled
DNS preference over NSS or WINS is disabled
pam_unix is always enabled
 shadow passwords are enabled
 password hashing algorithm is sha512
pam_krb5 is disabled
 krb5 realm = "EXAMPLE.COM"
 krb5 realm via dns is disabled
 krb5 kdc = "kerberos.example.com"
 krb5 kdc via dns is disabled
 krb5 admin server = "kerberos.example.com"
pam_ldap is enabled
 LDAP+TLS is enabled
 LDAP server = "ldaps://server.subdomain.mycompany.com"
 LDAP base DN = "dc=mycompany,dc=com"
 LDAP schema = "rfc2307"
pam_pkcs11 is disabled
 use only smartcard for login is disabled
 smartcard module = ""
 smartcard removal action = ""
pam_fprintd is enabled
pam_winbind is disabled
 SMB workgroup = ""
 SMB servers = ""
 SMB security = "user"
 SMB realm = ""
pam_sss is disabled by default
 credential caching in SSSD is enabled
 SSSD use instead of legacy services if possible is enabled
pam_cracklib is enabled (try_first_pass retry=3 type=)
pam_passwdqc is disabled ()
pam_access is disabled ()
pam_mkhomedir or pam_oddjob_mkhomedir is enabled ()
Always authorize local users is enabled ()
Authenticate system accounts against network services is disabled

Misafirlerinizle aynı kimlikleri görmesini istiyorsanız NAS'ınızı LDAP'ye de bağlamanız gerekmez mi?
Yanick Girouard

Yanick, cevap için teşekkürler. NAS birimim aslında NFS arka plan programı çalıştıran başka bir CentOS kutusu. Diğer LDAP istemcilerimle aynı şekilde yapılandırıldı ve aynı "kimse" sorununa sahip.
jamieb

Yanıtlar:


22

Google araştırmacıları için buna eklemek için bir not - ne yaparsak yapalım, nfs mount kullanıcı kimliklerini doğru şekilde eşlemezken aynı sorunu yaşadık.

Sorun, idmapd'nin hatalı yapılandırmalardan hatalı yapılandırmaları önbelleğe almasıydı ve yapılandırmanın düzeltilmemesi onu sıralayamazdı.

Bunu düzeltmek için centos komutu nfsidmap -c (önbelleği temizle) idi.

Umarım bu umutsuz araştırmacıya yardımcı olur ..


18

Çözüldü!

/var/log/messagesUzak istemciden bir dışa aktarma yapmaya çalışırken NFS sunucumda bu satırı fark ettim:

Feb 28 15:54:02 storage1 rpc.idmapd[1651]: nss_getpwnam: name 'nobody' does not map into domain 'localdomain'

Bu benim ilk birkaç satırına bakmama neden oldu /etc/idmapd.conf:

[General]
#Verbosity = 0
# The following should be set to the local NFSv4 domain name
# The default is the host's DNS domain name.
#Domain = local.domain.edu

Daha sonra Domain=subdomain.mycompany.com"Domain" satırının altına ekledim . Kaydedildi, çıkıldı ve sonra koştu /etc/init.d/rpcidmapd restartve /etc/init.d/nfs restart.


Bu bana yardımcı oldu. Bu değişikliği hem sunucuda hem de tüm istemcilerde yapmak zorunda olduğumu not edeceğim.
Michael Hampton


0

NFS sunucunuz Centos / RHEL 5'i şans eseri çalıştırıyor mu?

Öyleyse, NFSv3'ü dışa aktarır. NFSv4 artık Centos6 (ve son Ubuntu varyantları) için varsayılan değerdir.

Hızlı düzeltme, / etc / fstab içindeki montaj seçeneklerine "vers = 3" eklemektir.

Örneğin

//10.0.0.1:/home / home nfs varsayılanları, vers = 3, rw, noatime 0 0


Önerin için teşekkürler. LDAP sunucusu, istemci ve NFS sunucusunun tümü CentOS 6.2 çalıştırıyor. Sürüm 3 seçeneğiyle bağlamaya çalıştığımda istemcide izin verilmedi hatası alıyorum.
jamieb

Bunu kök kullanıcı olarak mı test ediyorsunuz? Bazı yararlı hafif okuma linuxtopia.org/online_books/rhel6/rhel_6_storage_admin/… . NFS sunucusunda no_root_squash özelliğini etkinleştirmeye değer olabilir.
NcA

Çözüldü (aşağıdaki cevaba bakınız)! Çoğunlukla LDAP'a baktığım için NFS hakkında daha fazla düşünmemi sağladığınız için teşekkürler.
jamieb

0

"Kimseyle" eşlenen her şey all_squash açık gibi geliyor.

Şuna baksana:

http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-nfs-server-config-exports.html

ve NFS sunucusunun / etc / export dosyasının istem dışı olarak UID'leri ezmediğini doğrulayın. "no_all_squash" varsayılan olarak varsayılmıştır, ancak bunu açıkça ayarlamayı ve ne olduğunu görmeyi deneyebilirsiniz.


1
Maalesef şans yok. Ancak ilginç bir şekilde, mount storage1:/nas/opt /mnt/testbağımsız istemcide hala "kimse" sorunu veriyor, ancak NFS sunucusundaki aynı komut sorunsuz çalışıyor. Keşke bunun bir NFS veya SSSD / NSS sorunu olup olmadığını bilsem.
jamieb

0

Benim için düzeltme, yerel makine için DNS kaydının bulunduğundan emin olmaktır. Ayrıca, geriye doğru arama kaydı da varsa yardımcı olur. Sonuç olarak, hiç kimse kullanıcı ve grup kök tarafından değiştirilmedi. Ne kadar basit?!? PS, DNS kayıtları oluşturulduktan sonra yerel makineyi yeniden başlatmayı unutmayın.

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.