La configuración del entorno no se refleja al cambiar de usuario en Ubuntu 22.04

La configuración del entorno no se refleja al cambiar de usuario en Ubuntu 22.04

Tengo dos usuarios llamados Alice y Sally en mi sistema Ubuntu 22.04. Alice ha configurado sus variables de entorno en el archivo .profile y funcionan correctamente para ella. Sin embargo, cuando Alice cambia al usuario Sally usando el comando sudo -s -u sally, la configuración del entorno del .profile de Alice no se refleja para Sally.

alice@dev7 192 0 % echo $appuser     
alice
alice@dev7 193 0 % env  | grep appuser
appuser=alice
alice@dev7 194 0 % sudo -s -u sally
sally@dev7 196 0 % echo $appuser

sally@dev7 197 0 %

He verificado que el archivo .profile esté presente en el directorio de inicio de Sally y tenga la configuración necesaria. Me gustaría entender por qué las variables de entorno no se aplican a Sally cuando Alice cambia a su usuario usando sudo -s -u sally. ¿Se requieren pasos o configuraciones adicionales para garantizar que la configuración del entorno se mantenga al cambiar de usuario de esta manera?

Respuesta1

~/.profilese obtiene al iniciar sesión el usuario... Por lo tanto, sudo -u userdebe usar para -i, --login"ejecutar el shell especificado por la entrada de la base de datos de contraseñas del usuario de destino como un shell de inicio de sesión" de esta manera:

sudo -i -u sally

Aviso: No puede especificar ambas opciones -iy -s.

Sin embargo, si desea conservar la elección de shell de sus usuarios actuales, puede usarlo sudo su ...así:

sudo su - sally --shell "$SHELL"

o especifique su elección de shell, por ejemplo, /bin/bashasí:

sudo su - sally --shell /bin/bash

independientemente del shell especificado por la entrada de la base de datos de contraseñas del usuario de destino.

información relacionada