Wozu dient "Sudo -Hiu"?

3528
Andrea

Ich folgte einem Tutorial, um den Hudson-Server zu installieren. Im Tutorial war der folgende Linux-Befehl ( hudsonist ein Benutzername in Ubuntu):

sudo -Hiu hudson 

Was ist sudo -Hiufür Was passiert nachdem ich diesen Befehl ausgeführt habe?

1

2 Antworten auf die Frage

5

Das -Hiu-Flag ist eine Kombination der Optionen -H, -i und -u. Direkt aus "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. 

Was bedeutet das alles? Die erste nützliche Option ist -u, wodurch der Befehl (in diesem Fall die Shell) als Benutzer hudson und nicht als Benutzer root ausgeführt wird. Mit der Option -H wird das Home-Verzeichnis für die Dauer des Befehls mit dem Home-Verzeichnis von Hudon gleichgesetzt, und mit der Option -i wird die anfängliche Anmeldung (z. B. Quelldotfiles) für den Benutzer hudson simuliert. Zusammen bedeuten dies: den Befehl unter dem Benutzer hudson ausführen. Da der Befehl in diesem Fall die Shell ist, bedeutet dies, dass eine Shell als Benutzer hudson geöffnet wird, als hätten Sie sich als Benutzer hudson direkt angemeldet.


Als Randbemerkung: Verwenden Sie sudo nur, wenn Sie wissen, welchen Befehl Sie ausführen. Wenn Sie nicht vorsichtig sind, bietet sudo Ihnen viel mehr Möglichkeiten, Ihre Systemkonfiguration zu stören, als Sie es sonst haben. Das heißt nicht, dass Sie es nicht beheben können, aber wenn Sie die Manpages 5 Minuten lesen, können Sie später Stunden für das Beheben von Problemen einsparen.

3
kev

Sie können man sudoIhr Terminal eingeben, um das Handbuch anzuzeigen.

Drücken Sie k/, jum nach oben und unten zu blättern.

Drücken Sie, um qzu beenden.