O que é “Sudo -Hiu” para?

1

Eu segui um tutorial para instalar o servidor Hudson. No tutorial estava o seguinte comando do Linux ( hudson é um nome de usuário no Ubuntu):

sudo -Hiu hudson

O que é sudo -Hiu ? O que acontece depois de eu executar este comando?

    
por Andrea 09.05.2012 / 04:57

2 respostas

5

O sinalizador -Hiu é uma combinação das opções -H, -i e -u. Direto do "homem 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.

Então, o que tudo isso significa? A primeira opção útil é -u, que faz com que o comando (neste caso, o shell) seja executado como usuário hudson em vez de usuário root. A opção -H torna o diretório home igual ao diretório home do hudon durante o comando, e a opção -i diz para simular o login inicial (por exemplo, dotfiles de origem) para o usuário hudson. Juntos, eles significam: fazer o comando rodar sob o usuário hudson. Como o comando neste caso é o shell, isso significa abrir um shell como usuário hudson, como se você estivesse logado como usuário hudson diretamente.

Como observação: não use o sudo, a menos que você saiba qual comando está sendo executado. Se você não for cuidadoso, o sudo lhe dará muito mais oportunidades de bagunçar a configuração do seu sistema do que de outra forma. Isso não quer dizer que você não consiga consertá-lo, mas levar 5 minutos para ler as man pages pode economizar horas de consertar problemas mais tarde.

    
por 09.05.2012 / 05:01
3

Você pode digitar man sudo no seu terminal para ver o manual.

Pressione k / j para rolar para cima e para baixo.

Pressione q para sair.

    
por 09.05.2012 / 05:00