GNU/Linux >> Znalost Linux >  >> Linux

Je možné změnit soubor databáze hesel (/etc/passwd) v linuxu?

Máte pravdu:/etc/passwd a /etc/shadow jsou konzultovány pam_unix.so , které jsou součástí PAM. Alespoň na moderních Linuxech. Toto můžete změnit záplatou pam_unix.so . Pokud je třeba věřit manuálové stránce, nemůžete změnit umístění systémových databází.

A to opravdu nechceš. /etc/passwd se nepoužívá pouze pro autentizaci, ale také pro (reverzní) rozlišení jmen a pro vyhledání věcí, jako je celé jméno uživatele, shell atd. Název a umístění jsou tak standardizované, že jejich přesunutí by téměř určitě rozbilo věci mimo pouze PAM. Museli byste záplatovat mnohem více, než jste očekávali.

Aktualizace: Pokud se pokoušíte skrýt /etc/{passwd,shadow,group} soubory pro bezpečnost, nedělejte si s tím starosti. Zabezpečení pomocí neznáma zřídka pomáhá jako politika. Nechte je tam, kde jsou, a zpřísněte zbytek svých zásad.

Aktualizace:možné řešení

Pokud máte nějaký vlastní software, který potřebujete pro přístup k jiné sadě databází uživatelů/skupin, můžete si vytvořit kopii příslušných modulů PAM a NSS a je opravit. používat vaše vlastní databáze. Původní unixové databáze zůstávají tam, kde jsou, takže software není zmatený, ale můžete nastavit PAM a NSS tak, aby používaly vaše vlastní moduly, kdekoli potřebujete, a za použití jakékoli zásady, která vám dává smysl.

Udržujte unixové databáze v podstatě nedotčené a máte to, co jste požadovali. To je v podstatě to, co radius a ldap Moduly PAM/NSS ano:poskytují dodatečné (nikoli náhradní) zdroj přihlašovacích údajů a informací o uživatelích/skupinách.

Jdeme ještě o krok dále:můžete se vrátit k PAM a NSS a úplně zakázat vyhledávání unixových databází. Nechte tam soubory pro starý software (jejich pohledy na databáze uživatelů/skupin budou samozřejmě nepřesné, ale alespoň se nerozbijí).


To, co hledáte, je pam_pwdfile modul. Na Debian/Ubuntu je balíček libpam-pwdfile (nejsem si jistý distribucemi odvozenými od RedHat).

README součástí balení vysvětluje, jak jej používat.


Nejsem si jistý, jestli je to možné hned po vybalení, ale určitě je to možné s nějakým hackováním. K tomu budete potřebovat:

  1. Vylaďte/hackněte knihovnu nsswitch (/lib/libnss_files.so nebo libnss_db.so – zkontrolujte svůj /etc/nsswitch.conf), aby načetla nějaký jiný soubor.
  2. Vylaďte/hackněte modul pam_unix, aby mohl číst některé další soubory.

Linux
  1. Ukázkový soubor /etc/services v Linuxu

  2. Pochopení konfiguračního souboru /etc/profile v Linuxu

  3. Extrahujte data z /etc/shadow

  1. Jak změnit heslo v Linuxu (příkaz passwd)

  2. Jak v mém souboru /etc/hosts/ v systému Linux/OSX vytvořím subdoménu se zástupnými znaky?

  3. Limit velikosti /etc/hosts (Linux)

  1. Úvod do souboru Linux /etc/fstab

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. Pochopení souboru /etc/hosts v Linuxu