CentOS 6 + LDAP + NFS. Quyền sở hữu tập tin bị kẹt trên không ai


11

Tôi đã cố gắng để xác thực LDAP và các thư mục nhà xuất khẩu NFS trên CentOS 6 hoạt động được vài ngày nay. Tôi đã nhận ra rằng bây giờ tôi có thể đăng nhập vào máy khách bằng tên người dùng và mật khẩu trong LDAP. Trên máy khách, / home và / opt được gắn trong fstab qua NFS. Tuy nhiên, mọi tệp trong cả / opt và / home đều thuộc sở hữu của nobody:nobody(uid: 99, gid: 99) trên máy khách.

Tuy nhiên, uid và gid của tôi dường như được đặt đúng:

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

Tôi có thể kiểm tra cái gì khác? Dưới đây là một số tệp cấu hình trên máy khách của tôi:

/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

đầu ra authconfig:

[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

Bạn cũng không cần kết nối NAS với LDAP nếu bạn muốn nó nhìn thấy cùng một ID so với khách của bạn?
Yanick Girouard

Yanick, cảm ơn đã trả lời. Đơn vị NAS của tôi thực sự chỉ là một hộp CentOS khác chạy daemon NFS. Nó được cấu hình giống như các máy khách LDAP khác của tôi và có cùng một vấn đề "không ai".
jamieb

Câu trả lời:


22

Một lưu ý để thêm vào điều này cho người tìm kiếm google - chúng tôi có cùng một vấn đề, bất kể chúng tôi đã làm gì, mount nfs sẽ không ánh xạ chính xác id người dùng.

Vấn đề là idmapd đã lưu các id không chính xác từ cấu hình bị lỗi và không sửa lỗi cấu hình sẽ sắp xếp nó.

Lệnh trên centos để sửa lỗi này là nfsidmap -c (xóa bộ đệm).

Hy vọng rằng điều này sẽ giúp một số người tìm kiếm khác nhau ..


18

Đã giải quyết!

Tôi tình cờ nhận thấy dòng này /var/log/messagestrên máy chủ NFS của tôi khi tôi đang cố gắn kết xuất từ ​​máy khách từ xa:

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

Điều này khiến tôi phải xem xét một vài dòng đầu tiên của /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

Sau đó tôi đã thêm vào Domain=subdomain.mycompany.comdưới dòng "Miền" đã nhận xét. Lưu, thoát rồi chạy /etc/init.d/rpcidmapd restart/etc/init.d/nfs restart.


Điều này đã giúp tôi. Tôi sẽ lưu ý rằng tôi phải thực hiện thay đổi này trên cả máy chủ và tất cả các máy khách.
Michael Hampton


0

Máy chủ NFS của bạn có chạy Centos / RHEL 5 không?

Nếu vậy, nó đang xuất NFSv3. NFSv4 hiện là mặc định cho Centos6 (và các biến thể Ubuntu gần đây).

Cách khắc phục nhanh là thêm "Vers = 3" trong tùy chọn gắn kết trong / etc / fstab.

ví dụ

//10.0.0.1:/home / home nfs mặc định, Vers = 3, rw, noatime 0 0


Cám ơn vì sự gợi ý. Máy chủ LDAP, máy khách và máy chủ NFS đều đang chạy CentOS 6.2. Tôi nhận được quyền từ chối lỗi trên máy khách khi tôi cố gắn nó với tùy chọn phiên bản 3.
jamieb

Bạn đang thử nghiệm điều này như là người dùng root? Một số ánh sáng hữu ích đọc linuxtopia.org/online_books/rhel6/rhel_6_st Storage_admin / . Có thể đáng để kích hoạt no_root_squash trên máy chủ NFS.
NcA

Đã giải quyết (xem câu trả lời dưới đây)! Cảm ơn vì đã khiến tôi suy nghĩ nhiều hơn về NFS vì tôi đã tìm kiếm chủ yếu ở LDAP.
jamieb

0

Mọi thứ được ánh xạ tới "không ai" nghe có vẻ như all_squash được bật.

Hãy xem:

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

và xác minh rằng tệp / etc / export của máy chủ NFS không vô tình đè bẹp các UID. "no_all_squash" được coi là mặc định, nhưng bạn có thể thử cài đặt rõ ràng và xem điều gì sẽ xảy ra.


1
Không may mắn, không may. Nhưng thật thú vị, mount storage1:/nas/opt /mnt/testtrên máy khách độc lập vẫn mang đến cho tôi vấn đề "không ai cả", nhưng lệnh tương tự trên máy chủ NFS hoạt động mà không gặp vấn đề gì. Tôi ước tôi biết liệu đây là vấn đề NFS hay SSSD / NSS.
jamieb

0

Cách khắc phục đối với tôi là đảm bảo bản ghi DNS tồn tại cho máy cục bộ. Cũng giúp nếu bản ghi tra cứu ngược cũng tồn tại. Kết quả là, không có người dùng và nhóm nào được thay thế bằng root. Làm thế nào đơn giản?!? PS nhớ khởi động lại máy cục bộ sau khi bản ghi DNS được tạo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.