Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

16.10.2008, 10:53

"su -p" - $HOME nicht gesetzt

Hallo,

hat jemand von Euch eine Idee, warum bei einem "su -p" die Umgebungsvariable $HOME nicht übernommen wird? Wie kann ich das wiederherstellen? (Beim alten SuSE 9.1, von dem wir umgestiegen sind, ging das so noch...)

Von dem User, der den su-Befehl ausführt, wird wirklich die gesamte Umgebung übernommen, nur $HOME nicht. Klar lässt sich das mit einem export-Befehl wieder setzen, allerdings muss man das dem su doch beibringen können, oder?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »benwei« (17.10.2008, 10:52)


2

16.10.2008, 16:22

Aus "man su":

Quellcode

1
2
3
4
5
...
      -m, -p, --preserve-environment
           Preserve the current environment.

           If the target user has a restricted shell, this option has no effect (unless su is called by root).

Sprich: "-p" funkt nicht, wenn du eine restricted bash hast. Was ist eine restricted bash? Eine bash, die eben "eingeschränkt" gestartet wurde.

Zitat

A restricted shell behaves identically to bash with the exception that the following are disallowed:
- Changing directories with the cd builtin.
- Setting or unsetting the values of the SHELL, PATH, ENV, or BASH_ENV variables.
- Specifying command names containing slashes.
- Specifying a filename containing a slash as an argument to the . builtin command.
- Specifying a filename containing a slash as an argument to the `-p' option to the hash builtin command.
- Importing function definitions from the shell environment at startup.
- Parsing the value of SHELLOPTS from the shell environment at startup.
- Redirecting output using the `>', `>|', `<>', `>&', `&>', and `>>' redirection operators.
- Using the exec builtin to replace the shell with another command.
- Adding or deleting builtin commands with the `-f' and `-d' options to the enable builtin.
- Specifying the `-p' option to the command builtin.
- Turning off restricted mode with `set +r' or `set +o restricted'.
auf http://www.faqs.org/docs/bashman/bashref_75.html

Hast du eine restricted bash gestartet?
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

3

16.10.2008, 18:57

Absichtlich wird keine "restricted bash" gestartet - es sei denn, gentoo macht das standardmäßig. Ich gehe von einer ganz normalen stage3-aufwärts-Basisinstallation ohne irgendwelche Eingriffe aus.

(Die ganzen genannten Features funktionieren, von daher ist es unwahrscheinlich, dass die "restricted" ist)

4

17.10.2008, 10:53

Ich hab die Problematik heute morgen mal mit nem Kollegen untersucht, als Workaround modifizieren wir die .bashrc von root mit folgendem Inhalt:

Quellcode

1
2
3
4
5
6
 if [ $LOGNAME == "root" ] 
then 
export HOME=/$LOGNAME 
else 
export HOME=/home/$LOGNAME 
fi


So bekommt man $HOME gefüllt.

Problem scheint hier irgendwie die Verwendung von "shadow" mit pam zu sein, anstatt wie bei anderen Distributionen "coreutils".

su -p = "preserve environment" bezeichnet unter gentoo scheinbar nur die Umgebung, die der User sich in seiner .bashrc selbst geschaffen hat, also keine allgemeingültigen Variablen wie $HOME. Normalerweise sollte $HOME beim Start der Shell gesetzt werden - passiert aber bei gentoo offensichtlich nicht. Da root standardmäßig keine .bashrc hat, bleibt das also leer. Von daher hilft uns jetzt unser Workaround, das lästige "export HOME=/xyz" entfällt.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »benwei« (17.10.2008, 10:59)