In questa guida, mostreremo come passare a un altro o un account utente specifico senza richiedere una password. Ad esempio, abbiamo un account utente chiamato postgres (il predefinito PostgreSQL account di sistema superutente), vogliamo che ogni utente (tipicamente il nostro PostgreSQL database e amministratori di sistema) nel gruppo chiamato postgres per passare a postgres account utilizzando il su comando senza inserire una password.

Per impostazione predefinita, solo l’utente root può passare a un altro account utente senza immettere una password. A qualsiasi altro utente verrà richiesto di inserire la password dell’account utente a cui stanno passando (o se stanno utilizzando il comando sudo, verrà richiesto di inserire la propria password), se non forniscono la password corretta, ottengono un “autenticazione fallita“Come mostrato nello screenshot seguente.

Errore di autenticazione utente non riuscita
Errore di autenticazione utente non riuscita

È possibile utilizzare una delle due soluzioni fornite di seguito per risolvere il problema precedente.

1. Utilizzo del modulo di autenticazione PAM

PAM (Moduli di autenticazione inseribili) sono al centro dell’autenticazione dell’utente sui moderni sistemi operativi Linux. Per consentire agli utenti di un gruppo specifico di passare a un altro account utente senza una password, possiamo modificare le impostazioni PAM predefinite per comando su nel /etc/pam.d/su file.

# vim /etc/pam.d/su
OR
$ sudo vim /etc/pam.d/su

Aggiungere le seguenti configurazioni dopo “Auth sufficiente pam_rootok.so“Come mostrato nello screenshot seguente.

auth       [success=ignore default=1] pam_succeed_if.so user = postgres
auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

 

Nella configurazione precedente, la prima riga controlla se l’utente di destinazione è postgres, in caso affermativo, il servizio controlla l’utente corrente, altrimenti il ​​file default=1 la riga viene saltata e vengono eseguiti i normali passaggi di autenticazione.

auth       [success=ignore default=1] pam_succeed_if.so user = postgres

La riga che segue controlla se l’utente corrente è nel gruppo postgres, Se yes, il processo di autenticazione viene considerato riuscito e restituisce un risultato sufficiente. In caso contrario, vengono eseguiti i normali passaggi di autenticazione.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres
Configurare PAM per consentire l'esecuzione del comando Su senza password
Configurare PAM per consentire l’esecuzione del comando Su senza password

Salva il file e chiudilo.

Successivamente, aggiungi l’utente (ad esempio aaronk) che vuoi su all’account postgres senza password per il gruppo postgres utilizzando il comando usermod.

$sudo usermod -aG postgres aaronk

Ora prova a su al postgres account come utente aaronk, non dovrebbe essere richiesta una password come mostrato nello screenshot seguente:

$ su - postgres
Aggiungi utente al gruppo
Aggiungi utente al gruppo

2. Utilizzo del file Sudoers

Puoi anche su a un altro utente senza richiedere una password apportando alcune modifiche nel file sudoers. In questo caso, l’utente (ad esempio aaronk) che passerà a un altro account utente (ad esempio postgres) dovrebbe essere nel file sudoers o nel gruppo sudo per poter richiamare il file comando sudo.

$ sudo visudo

Quindi aggiungere la seguente configurazione sotto la riga “%sudo ALL=(ALL:ALL) ALL” come mostrato nello screenshot seguente.

aaronk ALL=NOPASSWD: /bin/su – postgres
Aggiungi utente al file Sudoers
Aggiungi utente al file Sudoers

Salva e chiudi il file.

Ora prova a su all’account postgres come utente aaronk, la shell non dovrebbe chiederti di inserire una password:

$ sudo su - postgres
Passa ad un altro utente senza password
Passa ad un altro utente senza password

È tutto per ora! Per ulteriori informazioni, vedere la pagina di immissione manuale di PAM (man pam.conf) e quello di comando sudo anche (uomo sudo).

$ man pam.conf
$ man sudo

Esegui l'accesso per Commentare