* src/su.c, man/su.1.xml: The default behavior (without -p or

--login) is to copy most of the environment variables. Revert a
	previous change and update the documentation.
This commit is contained in:
nekral-guest 2009-06-11 20:01:21 +00:00
parent 80907f451b
commit 7d5d9c1841
3 changed files with 25 additions and 10 deletions

View File

@ -1,3 +1,9 @@
2009-06-06 Nicolas François <nicolas.francois@centraliens.net>
* src/su.c, man/su.1.xml: The default behavior (without -p or
--login) is to copy most of the environment variables. Revert a
previous change and update the documentation.
2009-06-06 Nicolas François <nicolas.francois@centraliens.net>
* man/passwd.5.xml, man/shadow.5.xml: Document the passwd- and

View File

@ -247,13 +247,20 @@
</para>
</listitem>
</varlistentry>
<varlistentry><term></term><listitem>
<para>
If <option>--login</option> is not used, the
environment is copied, except for the variables above.
</para>
</listitem>
</varlistentry>
<varlistentry><term></term><listitem>
<para>
If <option>--login</option> is used, the
<envar>$TERM</envar>, <envar>$COLORTERM</envar>,
<envar>$DISPLAY</envar>, and
<envar>$XAUTHORITY</envar> environment variables are
kept if they were set.
copied if they were set.
</para>
</listitem>
</varlistentry>
@ -270,13 +277,17 @@
</para>
</listitem>
</varlistentry>
<varlistentry><term></term><listitem>
<varlistentry condition="no_pam"><term></term><listitem>
<para>
Other environment variables are deleted, but might be
set by <phrase condition="no_pam">the
<option>ENVIRON_FILE</option> file (see
below)</phrase><phrase condition="pam">PAM
modules</phrase>.
If <option>--login</option> is used, other environment
variables might be set by the
<option>ENVIRON_FILE</option> file (see below).
</para>
</listitem>
</varlistentry>
<varlistentry condition="pam"><term></term><listitem>
<para>
Other environment might be set by PAM modules.
</para>
</listitem>
</varlistentry>

View File

@ -559,8 +559,7 @@ int main (int argc, char **argv)
* (note: in the case of a subsystem, the shell will be restricted,
* and this won't be executed on the first pass)
*/
if (change_environment) {
if (fakelogin) {
if (change_environment && fakelogin) {
/*
* The terminal type will be left alone if it is present in
* the environment already.
@ -610,7 +609,6 @@ int main (int argc, char **argv)
if (NULL != cp) {
addenv ("XAUTHORITY", cp);
}
}
} else {
while (NULL != *envp) {
addenv (*envp, NULL);