Seguí un tutorial para instalar el servidor Hudson. En el tutorial estaba el siguiente comando de Linux ( hudson
es un nombre de usuario en Ubuntu):
sudo -Hiu hudson
¿Que es sudo -Hiu
por? ¿Qué sucede después de ejecutar este comando?
Respuesta1
La bandera -Hiu es una combinación de las opciones -H, -i y -u. Directamente sacado de "man sudo":
-H The -H (HOME) option sets the HOME environment variable to
the homedir of the target user (root by default) as
specified in passwd(5). The default handling of the HOME
environment variable depends on sudoers(5) settings. By
default, sudo will set HOME if env_reset or always_set_home
are set, or if set_home is set and the -s option is
specified on the command line.
-i [command]
The -i (simulate initial login) option runs the shell
specified in the passwd(5) 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. Otherwise, an interactive shell is executed.
sudo attempts to change to that user's home directory
before running the shell. It also initializes the
environment, leaving DISPLAY and TERM unchanged, setting
HOME, MAIL, SHELL, USER, LOGNAME, and PATH, as well as the
contents of /etc/environment on Linux and AIX systems. All
other environment variables are removed.
-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 ('\'). Note that if the targetpw Defaults option
is set (see sudoers(5)) it is not possible to run commands
with a uid not listed in the password database.
Entonces, ¿qué significa todo esto? La primera opción útil es -u, que hace que el comando (en este caso, el shell) se ejecute como usuario hudson en lugar de como usuario root. La opción -H hace que el directorio de inicio sea igual al directorio de inicio de hudon durante la duración del comando, y la opción -i dice que se simule el inicio de sesión inicial (por ejemplo, archivos de puntos de origen) para el usuario hudson. En conjunto, esto significa: hacer que el comando se ejecute bajo el usuario hudson. Dado que el comando en este caso es el shell, esto significa abrir un shell como usuario hudson, como si hubiera iniciado sesión directamente como usuario hudson.
Como nota al margen: no uses sudo a menos que sepas qué comando estás ejecutando. Si no tiene cuidado, sudo le brinda muchas más oportunidades de estropear la configuración de su sistema que de otra manera. Eso no quiere decir que no puedas solucionarlo, pero tomarte 5 minutos para leer las páginas del manual puede ahorrarte horas de solucionar problemas más adelante.
Respuesta2
Puedes escribir man sudo
en tu terminal para ver el manual.
Pulsa k/ jpara desplazarte hacia arriba y hacia abajo.
Pulsa qpara salir.