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

3456
Andrea

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

sudo -Hiu hudson 

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

1

2 ответа на вопрос

5

Флаг -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 говорит имитировать начальный вход в систему (например, исходные точечные файлы) для пользователя hudson. Взятые вместе, они означают: заставить команду работать от имени пользователя hudson. Поскольку команда в данном случае - это оболочка, это означает, что открыть оболочку можно как пользователь hudson, так же, как если бы вы вошли как пользователь hudson напрямую.


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

3
kev

Вы можете ввести man sudoсвой терминал для просмотра руководства.

Нажмите k/, jчтобы прокрутить вверх и вниз.

Нажмите, qчтобы выйти.