Por que o sudo bash é necessário?

Por que o sudo bash é necessário?

Eu estava lendo o seguinte código:

$ sudo bash
# cd /home/
# ./gitpull.sh

Por que preciso da primeira linha, o que ela faz exatamente? E se eu simplesmente fizesse $ sudoem vez de $ sudo bash?

Responder1

Ele inicia um shell bash como um rootusuário de nível. Você precisa disso porque normalmente usuários normais não conseguem acessar/home/

O perigo do que você está fazendo é que você está em um shell root - você pode bagunçar sua máquina com bastante facilidade.

Responder2

Você ficaria muito melhor fazendo:

$ sudo sh -c 'cd /home; ./gitpull.sh'

Porque os comandos invocados como root serão registrados. Invocar um shell diretamente através do sudo evita todos os benefícios de segurança do sudo e deve ser evitado.

Responder3

sudo <shell>, se funcionar, revela uma instalação deficiente do sudo e uma potencial fraqueza de segurança.

sudonão deve ser configurado para permitir comandos arbitrários como shell; o objetivo sudoé permitir que usuários não-root autenticados executem determinados comandos como root, sem saber a senha do root.

Se sudo bashfor permitido a qualquer usuário, esse usuário será root simplesmente por saber sua própria senha.

Se um invasor obtiver a senha de qualquer uma das contas que são capazes de fazer isso sudo bash, o invasor terá root.

A maneira correta de fazer o equivalente a sudo bash(obter um shell de root) é su, seguido de fornecer a senha de root, não a sua.

Responder4

sudopermite que os usuários executem programas com os privilégios de segurança de outro usuário (normalmente o superusuário ou root).
bashinicia um novo shell bash.
Portanto, sudo bashinicia um novo shell bash com o privilégio de segurança do usuário root.

informação relacionada