Aus su
der Manpage von:
For backward compatibility, su defaults to not change the current directory
and to only set the environment variables HOME and SHELL (plus USER and LOGNAME
if the target user is not root). It is recommended to always use the
--login option (instead of its shortcut -) to avoid side effects caused
by mixing environments.
...
-, -l, --login
Start the shell as a login shell with an environment similar to a real login:
o clears all the environment variables except TERM
o initializes the environment variables HOME, SHELL, USER, LOGNAME, and PATH
o changes to the target user's home directory
o sets argv[0] of the shell to '-' in order to make the shell a login shell
Es ist schwer zu sagen, ob es einen Unterschied zwischen -
und --login
(oder angeblich nur -l
) gibt. Die Manpage sagt nämlich "anstelle der Abkürzung -", aber alle diese Optionen sind gruppiert, und ich sehe keine Erklärung für den Unterschied, wenn es überhaupt existiert.
UPD Ich habe die Frage überprüft, die mein Problem lösen soll . Die Frage betrifft grundsätzlich den Unterschied zwischen su
und su -
. Und ich frage nach dem Unterschied zwischen su -
und su --login
. Also nein, es löst es überhaupt nicht.
To avoid side effects caused by mixing environments use --login option or its equivalent -. The first form is recommended because - can be placed only just before username.
su
undsu -
. Und ich frage nach dem Unterschied zwischensu -
undsu --login
. Was vermisse ich hier?Antworten:
Debians manuelle Eingabe scheint aufschlussreicher zu sein:
quelle
-
. Apropos, warum "vor einem Benutzernamen"?I disagree, however, with the general point that, "before any username" can be rephrased as "before the username, if any." Perhaps Mr. Plotnik meant that the man page* should have rephrased the text using his suggestion, but the two phrases are not equivalent (as I explained at the beginning of this post).
Das heißt, Mark Plotnick weiß, wie essu
funktioniert, aber "vor jedem Benutzernamen"! = "Vor dem Benutzernamen, falls vorhanden." Zu diesem Schluss kam die Diskussion meines Erachtens.Es gibt keinen Unterschied, es ist wie beim Laufen.
nur kurz ...
quelle
-
,-l
,--login
. Meine Frage ist, warum es nicht empfohlen wird-
, im Gegensatz zu "-l, and
--login" zu verwenden.su
, wenn Sie ein Skript schreiben?