Wie kann ich die Umgebung für diesen Benutzer festlegen, wenn Puppet Exec als Benutzer ausgeführt wird?

7

Ich habe festgestellt, dass bei Verwendung der userOption execnicht die Umgebung des angegebenen Benutzers verwendet wird.

$ sudo -i puppet apply -e "exec { '/usr/bin/env': logoutput => true, user => nobody}" 
notice: /Stage[main]//Exec[/usr/bin/env]/returns: SHELL=/bin/bash
notice: /Stage[main]//Exec[/usr/bin/env]/returns: USER=root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: USERNAME=root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
notice: /Stage[main]//Exec[/usr/bin/env]/returns: MAIL=/var/mail/root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: PWD=/root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: HOME=/root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: LOGNAME=root
notice: /Stage[main]//Exec[/usr/bin/env]/returns: executed successfully

Während der Befehl wie folgt ausgeführt nobodywird USER, HOMEsind usw. nicht wie erwartet festgelegt. Gibt es eine Möglichkeit exec, eine Anmeldeshell zu simulieren, damit die Umgebung wie erwartet eingerichtet wird?

leedm777
quelle

Antworten:

10

Es gibt keine Möglichkeit, execeine Login-Shell zu simulieren. Sie können jederzeit verwenden su -(wie vorgeschlagen durch womble ) ein Login - Shell zu erhalten zu produzieren, aber wenn alles , was Sie wollen Umgebungsvariablen sind gesteuert durch Puppet, nur die Parameter verwenden environment.

Daniel C. Sobral
quelle
6

Führen Sie den Befehl sicher über aus, su -anstatt den Benutzer im Manifest anzugeben.

womble
quelle