Для чего нужно «Судо-Хиу»?

Для чего нужно «Судо-Хиу»?

Я следовал руководству по установке сервера Hudson. В руководстве была следующая команда Linux ( hudsonэто имя пользователя в Ubuntu):

sudo -Hiu hudson

Для чего sudo -Hiu? Что произойдёт после того, как я выполню эту команду?

решение1

Флаг -Hiu представляет собой комбинацию опций -H, -i и -u. Прямо из "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.

Итак, что все это значит? Первая полезная опция - это -u, которая заставляет команду (в данном случае оболочку) запускаться от имени пользователя hudson, а не от имени пользователя root. Опция -H делает домашний каталог равным домашнему каталогу hudon на время выполнения команды, а опция -i говорит о необходимости имитировать первоначальный вход в систему (например, исходные dotfiles) для пользователя hudson. В совокупности это означает: заставить команду запускаться от имени пользователя hudson. Поскольку команда в данном случае является оболочкой, это означает открыть оболочку от имени пользователя hudson, как если бы вы вошли в систему напрямую как пользователь hudson.


В качестве примечания: не используйте sudo, если вы не знаете, какую команду вы запускаете. Если вы не будете осторожны, sudo даст вам гораздо больше возможностей испортить конфигурацию вашей системы, чем в противном случае. Это не значит, что вы не можете это исправить, но 5 минут, потраченных на чтение man-страниц, могут сэкономить часы исправления проблем позже.

решение2

Вы можете ввестиman sudo в терминале, чтобы просмотреть руководство.

Ударятьk / jдля прокрутки вверх и вниз.

Ударятьq , чтобы выйти.

Связанный контент