Wofür ist "Sudo -Hiu"?

Wofür ist "Sudo -Hiu"?

Ich habe ein Tutorial zur Installation des Hudson-Servers befolgt. Im Tutorial war der folgende Linux-Befehl ( hudsonist ein Benutzername in Ubuntu):

sudo -Hiu hudson

Wofür ist das sudo -Hiu? Was passiert, nachdem ich diesen Befehl ausgeführt habe?

Antwort1

Das Flag -Hiu 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, die bewirkt, dass der Befehl (in diesem Fall die Shell) als Benutzer hudson und nicht als Benutzer root ausgeführt wird. Die Option -H macht das Home-Verzeichnis für die Dauer des Befehls gleich dem Home-Verzeichnis von hudon, und die Option -i besagt, dass die erste Anmeldung (z. B. Quell-Dotfiles) für den Benutzer hudson simuliert werden soll. Zusammengenommen bedeutet dies: Der Befehl wird als Benutzer hudson ausgeführt. Da der Befehl in diesem Fall die Shell ist, bedeutet dies, dass eine Shell als Benutzer hudson geöffnet wird, so als ob Sie sich direkt als Benutzer hudson angemeldet hätten.


Als Randbemerkung: Verwenden Sie sudo nicht, wenn Sie nicht wissen, welchen Befehl Sie ausführen. Wenn Sie nicht aufpassen, bietet Ihnen sudo viel mehr Möglichkeiten, Ihre Systemkonfiguration durcheinander zu bringen, als sonst. Das heißt nicht, dass Sie das Problem nicht beheben können, aber wenn Sie sich 5 Minuten Zeit nehmen, um die Manpages zu lesen, können Sie sich später Stunden der Problembehebung ersparen.

Antwort2

Sie können man sudoin Ihr Terminal tippen, um das Handbuch anzuzeigen.

Drücken Sie k/, jum nach oben und unten zu scrollen.

Zum Beenden drücken q.

verwandte Informationen