In questa guida mostreremo come passare ad un altro o ad uno specifico account utente senza richiedere una password. Ad esempio, abbiamo un account utente chiamato postgres (l'impostazione predefinita PostgreSQL account di sistema superutente), vogliamo ogni utente (in genere il nostro PostgreSQL database e amministratori di sistema) nel gruppo denominato 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 inserire una password. A tutti gli altri utenti verrà chiesto di inserire la password dell'account utente a cui stanno passando (o se stanno usando il comando sudo, verrà loro richiesto di inserire la propria password), se non forniscono la password corretta, ottengono un "autenticazione non riuscita ” come mostrato nella schermata seguente.
Puoi utilizzare una delle due soluzioni fornite di seguito per risolvere il problema precedente.
1. Utilizzo del modulo di autenticazione PAM
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 nella schermata 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, in caso contrario, il 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 è considerato riuscito e restituisce sufficiente di conseguenza. In caso contrario, 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 vuoi su
all'account postgres senza password al gruppo postgres usando 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 nella schermata seguente:
$ su - postgres
2. Utilizzo del file Sudoers
Puoi anche su
a un altro utente senza richiedere una password apportando alcune modifiche al 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 poter invocare il comando sudo .
$ sudo visudo
Quindi aggiungi la seguente configurazione sotto la riga “%sudo ALL=(ALL:ALL) ALL”
come mostrato nella schermata 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 richiedere di inserire una password:
$ sudo su - postgres
È tutto per ora! Per ulteriori informazioni, vedere la pagina di immissione manuale di PAM (man pam.conf ) e quello di sudo command anche (man sudo ).
$ man pam.conf $ man sudoLettura correlata :10 utili configurazioni di sudoer per impostare 'sudo' in Linux