Place any shell scripts containing your own preconfigurations into the
"/etc/sysprofile.d/" directory.  They will be sourced by every user at
login if the following lines are present in "/etc/profile" (for login
shells) and "/etc/bash.bashrc" (for non-login shells):

    if [ -f /etc/sysprofile ]; then
        . /etc/sysprofile
    fi

Any files in "/etc/sysprofile.d/" without the .bash suffix will be
simply ignored.

For "sysprofile", it might be useful to source it the same way from
"/etc/X11/Xsession" or your X display manager's Xsession file to provide
the same shell environment as under the console in X11 too. See the
example files in "/usr/share/doc/sysprofile/" for illustration.

Under X11, for usage of terminal emulators with a non-login bash shell
take care to enable sysprofile via "/etc/bash.bashrc".  If not set this
way, your terminal emulators won't come up with the environment defined
by the scripts in "/etc/sysprofile.d/".

Users wanting to exclusively use their own private configurations can
simply touch the file "$HOME/.nosysprofile" to stay practically unaffected
by the sysadmin's silly musings.  Alternatively users can set up their
own "$HOME/.sysprofile.d/" directory containing private versions of the
*.bash files contained in "/etc/sysprofile.d/" which will automagically
be preferred over the the system wide version.  To disable sourcing of a
single specific systemwide shell configuration file it is sufficient to
create an empty version of it in "$HOME/.sysprofile.d/".

If you need a similar mechanism for executing code at logout time please
check out the related package "syslogout" by yours truly, which is a
very close companion to "sysprofile".

Package maintainers should please never ever rely on the existence of
"sysprofile" on a system for their own Debian packages.  The "sysprofile"
mechanism is and should stay an optional tool for local sysadmins only.

Feedback, additions and any improvements are happily appreciated by the
current package maintainer.
