GNU/Linux >> Linux Esercitazione >  >> Linux

È possibile modificare il file del database delle password (/etc/passwd) in Linux?

Hai ragione:/etc/passwd e /etc/shadow sono consultati da pam_unix.so , che fanno parte di PAM. Almeno sui moderni Linux. Puoi cambiarlo applicando una patch a pam_unix.so . Se si deve credere alla manpage, non è possibile modificare la posizione dei database di sistema.

E davvero non vuoi. /etc/passwd non è usato solo per l'autenticazione, è anche usato per la risoluzione dei nomi (inversa) e per cercare cose come il nome completo dell'utente, shell, eccetera. Il nome e la posizione sono così standardizzati che spostarli quasi sicuramente romperebbe le cose al di fuori del solo PAM. Dovresti applicare patch molto più di quanto ti aspettavi.

Aggiornamento: Se stai cercando di nascondere il /etc/{passwd,shadow,group} file per sicurezza, non preoccuparti. La sicurezza per oscurità raramente aiuta come politica. Lasciali dove sono e inasprisci il resto delle tue politiche.

Aggiornamento:una possibile soluzione

Se disponi di un software personalizzato necessario per accedere a un insieme diverso di database di utenti/gruppi, puoi fare una copia dei relativi moduli PAM e NSS e correggerli per utilizzare i tuoi database personalizzati. I database unix originali rimangono dove sono in modo che il software non venga confuso, ma puoi impostare PAM e NSS in modo che utilizzino i tuoi moduli personalizzati ovunque sia necessario e utilizzando qualsiasi politica abbia senso per te.

Mantieni i database unix essenzialmente incontaminati e avrai ciò che hai chiesto. Questo è praticamente ciò che il radius e ldap I moduli PAM/NSS sì:forniscono un ulteriore (non sostituzione) fonte di credenziali e informazioni su utenti/gruppi.

Facendo un ulteriore passo avanti:puoi tornare a PAM e NSS e disabilitare del tutto le ricerche nel database unix. Lascia i file lì per il vecchio software (naturalmente, le loro visualizzazioni dei database di utenti/gruppi saranno imprecise, ma almeno non si romperanno).


Quello che stai cercando è pam_pwdfile modulo. Su Debian/Ubuntu il pacchetto è libpam-pwdfile (non sono sicuro delle distribuzioni derivate da RedHat).

Il README incluso nella confezione spiega come usarlo.


Non sono sicuro che sia possibile fuori dagli schemi, ma è sicuramente possibile con un po' di hacking. Per fare ciò dovrai:

  1. Tune/hack libreria nsswitch (/lib/libnss_files.so o libnss_db.so - controlla il tuo /etc/nsswitch.conf) in modo che legga qualche altro file.
  2. Ottimizza/hack il modulo pam_unix in modo che legga altri file.

Linux
  1. Come modificare la password in Linux (comando passwd)

  2. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  3. Comprensione del file /etc/hosts in Linux

  4. Nel mio file /etc/hosts/ su Linux/OSX, come creo un sottodominio con caratteri jolly?

  5. Limite dimensione di /etc/hosts (Linux)

Comprendere il file /etc/shadow

Che cos'è Fstab in Linux | Un'introduzione al file /etc/fstab di Linux

Il modo giusto per modificare i file /etc/passwd e /etc/group in Linux

Comando Linux passwd – Modifica password utente

Che cos'è il file /etc/passwd in Linux?

Comprendere il file /etc/fstab in Linux