Il problema
In alcune situazioni, un utente normale all'interno di un container Docker non può eseguire il comando "su" per cambiare utente. Quando viene emesso il comando 'su', viene restituito il seguente errore.
$ su - Password: [entering correct password] su: Authentication failure
La soluzione
L'autorizzazione permanente potrebbe mancare in /usr/bin/su all'interno del contenitore. Con il privilegio di root, puoi risolvere come segue:
1. Per prima cosa controlla le autorizzazioni correnti per il file binario /usr/bin/su.
# ls -l /usr/bin/su -rwxr-xr-x 1 root root 32208 Mar 14 01:39 /usr/bin/su
Come possiamo vedere nell'output sopra, mancano le autorizzazioni per i bit permanenti.
2. Aggiungi i permessi sticky bit al file /usr/bin/su come segue:
# chmod u+s /usr/bin/su
3. Verifica di nuovo i permessi e controlla il flag "x" alla fine del campo di autorizzazione.
# ls -l /usr/bin/su -rwsr-xr-x 1 root root 32208 Mar 14 01:39 /usr/bin/su
4. Prova a ripetere su all'interno del contenitore mobile.
$ su - postgres Password: Last login: Tue Aug 6 12:13:57 JST 2019 on pts/1 postgres@[hostname] $