Ricerca nel sito web

Come passare (su) a un altro account utente senza password


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

Per impostazione predefinita, solo l'utente root può passare a un altro account utente senza inserire una password. A qualsiasi altro utente verrà richiesto di inserire la password dell'account utente a cui sta passando (o se sta utilizzando il comando sudo, verrà richiesto di inserire la propria password), se non fornisce la password corretta, riceverà un errore "autenticazione non riuscita" come mostrato nello screenshot seguente.

È possibile utilizzare una qualsiasi delle due soluzioni fornite di seguito per risolvere il problema di cui sopra.

1. Utilizzo del modulo di autenticazione PAM

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

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

Aggiungi le seguenti configurazioni dopo "auth sufficienti 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, se lo è, il servizio controlla l'utente corrente, altrimenti la riga default=1 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 sufficiente come risultato. Altrimenti, vengono eseguiti i normali passaggi di autenticazione.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

Salva il file e chiudilo.

Successivamente, aggiungi l'utente (ad esempio aaronk) che desideri su all'account postgres senza password nel gruppo postgres utilizzando il comando usermod.

$sudo usermod -aG postgres aaronk

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

su - postgres

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 trovarsi nel file sudoers o nel gruppo sudo per essere in grado di invocare il comando sudo.

sudo visudo

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

aaronk ALL=NOPASSWD: /bin/su – postgres

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

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

man pam.conf
man sudo