+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
</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>
</para>
</listitem>
</varlistentry>
- <varlistentry><term></term><listitem>
+ <varlistentry condition="no_pam"><term></term><listitem>
+ <para>
+ 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 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>.
+ Other environment might be set by PAM modules.
</para>
</listitem>
</varlistentry>
* (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.
if (NULL != cp) {
addenv ("XAUTHORITY", cp);
}
- }
} else {
while (NULL != *envp) {
addenv (*envp, NULL);