Logowanie do systemu Linux: Jak użyć / etc / passwd do ponownego filtrowania nazwy użytkownika ldap

0

Pracuję dla uniwersytetu. Mogę uzyskać dostęp do serwera uniwersyteckiego LDAP, ale nie mogę niczego modyfikować (tylko dla mnie). Mam kilka komputerów z systemem Linux, chcę skonfigurować wszystkie maszyny do uwierzytelniania za pośrednictwem uniwersyteckiego LDAP. (to całkiem proste, prawda?). Problemy to:

Tylko podzbiór użytkowników LDAP może logować się na maszynie (wiem, że można to zrobić za pomocą grupy LDAP lub dodatkowego atrybutu LDAP, ale nie mogę niczego modyfikować na uniwersyteckim LDAP) Niektórzy użytkownicy mogą nie być w LDAP ale mam konta na komputerze. Myślę, że: użyj / etc / passwd jako listy użytkowników: if (użytkownik NIE jest na liście) {nie może się zalogować,} else {if (jest w LDAP) {ponownie sprawdź hasło na uniwersytecie LDAP} else {ponownie sprawdź hasło ponownie / etc / shadow}}

Czy jest jakieś rozwiązanie? Każda pomoc doceniona.

zfsu
źródło

Odpowiedzi:

0

Aby zezwolić na logowanie tylko części użytkowników LDAP:

  1. Jeśli masz sposób na ich filtrowanie bez modyfikowania serwera LDAP, możesz dodać filtr do /etc/nslcd.confpliku, np .:

    filter passwd (objectClass=localAccount)
    
  2. W przeciwnym razie musisz zezwolić wszystkim użytkownikom LDAP jako użytkownikom lokalnym i udzielić uprawnień tylko tym, których chcesz, np. Zmieniając /etc/security/access.confi / lub /etc/ssh/sshd_config.

Aby mieć dodatkowych użytkowników lokalnych, oprócz tych z serwera LDAP, potrzebny będzie /etc/nsswitch.confplik zawierający coś takiego:

passwd: files [unavail=return] ldap
group:  files [unavail=return] ldap
shadow: files ldap

Mam nadzieję, że czegoś nie zapomnę ...

nickie
źródło