1. Content (this section)
  2. About
  3. Getting the source
  4. Invocation


In large networks it may be necessary to delegate administrative tasks to other users. The administrator has to create a lot of groups and the helpers need to know a lot of passwords.

With msu this chaos has it's end.

Every user listed in /etc/msuuser may change his userid and groupid without commiting a password. If the administrator don't want to give root-privileges to every deputy, he may add a comma-seperated list of user accounts after the user name.

↑ Top of page ↑

Getting the source


I use GIT repositories, hosted on sourceforge as my version control system of choice - and I recommend you read up on the Git documentation.

The webpage is hosted here and I use sourceforges Ticketsystem to keep track of bugs, etc. There is also a Mailinglist, currently not used by anyone but me, so I need some more advertisments for it :-)
(Note: you have to login to sourceforge in order to use the trackers and mailinglists)

If you wish to contribute to development, feel free. To get started, you're probably best off sending me an email, or just checking out repositories and sending me patches via git diff. The Patchtracker is also a good place to put diffs.

About GIT

GIT is a source code management tool. You must have a recent version of git installed on your system in order to get the sources of fgms. Cygwin and most modern linux distributions offer an installable git package that should work great.
On this page I describe how to get the sources with the (unix) command line client. If you use another operating system or client, I can't assist you. If you have experience with other operating systems/clients, feel free to send me a description of how you get the sources with it.


In order to compile the source into an executable file you need a working build environment preinstalled on your system:

Step 1 - creating a directory for the sources

cd /some/path

Step 2 - checking out the sources

git clone git:// msu

Step 3 - compiling the source

Configure and compile the sources:

cd msu



On most systems a "./configure" is sufficient. There are many options to configure, two of them may be of interrest:

--sysconfdir DIR
put msu-database into DIR (eg. /etc)
default is /usr/local/etc/msuuser
--bindir DIR
where the binary gets installed (eg. /usr/bin)
default is /usr/local/bin/

make install

After the installation you should edit the msu database:

vi /usr/local/etc/msuuser

An example user database is included with the source, and I believe its quite self explanatory:

# msu-config file /etc/suser
# only user listed her may execute msu

# user has to identify himself with his own password
-user-auth: on
# echo '*' while typing password
-echo-asterisk: on

# admin may 'msu' to user 'ftp' or 'bind'
admin: ftp, bind

# oliver may 'msu' to any user
Users authenticate with their own password (if "-user-auth: on" is defined).

↑ Top of page ↑

Invocation and example output

msu accepts the following commandline parameters:
Provide an environment similar to what the user would expect had the user logged in directly.
When - is used, it must be specified as the last su option. The other forms (-l and --login) do not have this restriction.
print version information and exit
print this help screen
SHELL use SHELL as shell
-c CMD
--command CMD
pass CMD to the shell via -c option
change group id instead of userid
all additional arguments gets passed to the shell as is.

All msu invocations get logged via syslog.

An example invocation looks like this:

$ msu -
oliver -> root

↑ Top of page ↑

copyright © 1997-2024  Oliver Schroeder (remove XYZ)