execute a command as another user
-u user The -u (user) option causes sudo to run the specified command as a user other than root. To
specify a uid instead of a user name, use #uid. When running commands as a uid, many shells
require that the '#' be escaped with a backslash ('\'). Security policies may restrict uids
to those listed in the password database. The sudoers policy allows uids that are not in the
password database as long as the targetpw option is not set. Other security policies may not
sudo allows a permitted user to execute a command as the superuser or another user, as specified by the
security policy. The real and effective uid and gid are set to match those of the target user, as
specified in the password database, and the group vector is initialized based on the group database
(unless the -P option was specified).
The -i (simulate initial login) option runs the shell specified by the password database
entry of the target user as a login shell. This means that login-specific resource files
such as .profile or .login will be read by the shell. If a command is specified, it is
passed to the shell for execution via the shell's -c option. If no command is specified, an
interactive shell is executed. sudo attempts to change to that user's home directory before
running the shell. The security policy shall initialize the environment to a minimal set of
variables, similar to what is present when a user logs in. The Command Environment section
in the sudoers(5) manual documents how the -i option affects the environment in which a
command is run when the sudoers policy is in use.
-n The -n (non-interactive) option prevents sudo from prompting the user for a password. If a
password is required for the command to run, sudo will display an error messages and exit.
If a command is terminated by the control operator &, the shell executes the command in the background in
a subshell. The shell does not wait for the command to finish, and the return status is 0.