Die Umgebungskonfiguration wird beim Benutzerwechsel in Ubuntu 22.04 nicht angezeigt

Die Umgebungskonfiguration wird beim Benutzerwechsel in Ubuntu 22.04 nicht angezeigt

Ich habe zwei Benutzer namens Alice und Sally auf meinem Ubuntu 22.04-System. Alice hat ihre Umgebungsvariablen in der .profile-Datei konfiguriert und sie funktionieren für sie ordnungsgemäß. Wenn Alice jedoch mit dem Befehl sudo -s -u sally zum Benutzer Sally wechselt, werden die Umgebungseinstellungen aus Alices .profile nicht für Sally übernommen.

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 %

Ich habe überprüft, dass die .profile-Datei in Sallys Home-Verzeichnis vorhanden ist und die erforderliche Konfiguration aufweist. Ich möchte verstehen, warum die Umgebungsvariablen für Sally nicht angewendet werden, wenn Alice mit sudo -s -u sally zu ihrem Benutzer wechselt. Sind zusätzliche Schritte oder Konfigurationen erforderlich, um sicherzustellen, dass die Umgebungseinstellungen übernommen werden, wenn Benutzer auf diese Weise gewechselt werden?

Antwort1

~/.profilewird bei der Benutzeranmeldung verwendet ... Daher sudo -u usermüssen Sie dies verwenden, -i, --loginum „die durch den Kennwortdatenbankeintrag des Zielbenutzers angegebene Shell als Anmelde-Shell auszuführen“, und zwar wie folgt:

sudo -i -u sally

Beachten: Sie können die Optionen -iund nicht gleichzeitig angeben -s.

Wenn Sie jedoch die Shell-Wahl Ihres aktuellen Benutzers beibehalten möchten, können Sie sudo su ...Folgendes verwenden:

sudo su - sally --shell "$SHELL"

oder geben Sie die Shell Ihrer Wahl beispielsweise /bin/bashfolgendermaßen an:

sudo su - sally --shell /bin/bash

unabhängig von der Shell, die durch den Kennwortdatenbankeintrag des Zielbenutzers angegeben ist.

verwandte Informationen