Qual é o objetivo do comando sudo, em termos de segurança?

1

Esta questão é, na verdade, não específica do Ubuntu. Meu entendimento é que sudo é impedir que usuários não autorizados façam operações administrativas e outras potencialmente prejudiciais. A premissa é que alguém está aqui na frente do meu PC usando ele ... ou talvez remotamente (mas nesse caso eles devem saber minha senha de login para se conectar ao computador, e isso geralmente é o mesmo que minha sudo senha. ..) Então, alguém está na frente do meu PC e ela não pode excluir certos arquivos ou diretórios importantes ou instalar software prejudicial sem saber minha sudo senha, mas ela pode fazer muitas outras coisas prejudiciais e violadoras de privacidade sem sudo . Então, não seria melhor pedir privilégios de administrador toda vez antes de abrir o gerenciador de arquivos ou o terminal? Eu sei que isso pode ser demorado e cansativo ...

    
por A. N. Other 05.07.2017 / 22:59

4 respostas

1

Primeiro, você precisa entender o conceito dos usuários no linux, com especial atenção ao usuário root . Para manter esta resposta abaixo do limite de caracteres (e no tópico), sugiro que você leia esta página seguido por este . Realmente, tudo que você precisa saber é o seguinte:

O Linux é um sistema operacional multiusuário, com cada usuário tendo poder e escopo limitados, conforme definido por seu grupo de usuários. Todo sistema Linux tem algo chamado root user (UID 0, também conhecido como superusuário), que é o administrador total e completamente autoritativo. root sabe tudo, root vê tudo, root controla tudo.

O conceito de sudo veio do comando UNIX antigo su (de s bruxa u ser), que permitia a qualquer usuário efetuar login em qualquer outra usuário no sistema. Qualquer pessoa com privilégios administrativos digitaria su root (ou apenas su ) para escalar para o usuário raiz em qualquer tarefa administrativa. Isso, lamentavelmente, teve alguns problemas. Em sistemas com vários administradores, todos compartilhavam a senha raiz. Ou seja, se um administrador deixasse a empresa, a senha do root precisaria ser alterada e redistribuída para todos os outros administradores. Isso pode ser extremamente demorado, às vezes, e de outra forma, ser apenas uma grande dor.

Agora, insira sudo . sudo funciona em um princípio diferente. Em vez de exigir que os usuários saibam o login da conta raiz, sudo seria usado para permitir que os usuários escalem a si mesmos na conta root (ou qualquer outra conta, para essa matéria) com base nas regras do arquivo /etc/sudoers . Agora, revogar ou adicionar um administrador é simples - basta adicionar ou remover um usuário de um grupo ou do arquivo. Por causa disso, a conta raiz pode ser "desativada", bloqueando o acesso a qualquer pessoa, exceto os administradores reais.

Para quase todos os casos, isso é tudo em que sudo é usado. Concede root power aos administradores (membros do grupo admin ou sudo ) com base nas regras definidas em /etc/sudoers .

(Des) intencionalmente, isso também vem com um enorme benefício de segurança. Os administradores podem executar em um modo não privilegiado como qualquer outro usuário. Eles podem, então, escalonar ou "habilitar" privilégios administrativos quando forem necessários, e revogá-los imediatamente depois. Normalmente, isso é usado apenas para um único comando (por exemplo, sudo apt install cowsay ), mas também pode ser um shell raiz completo.

Esse isolamento também protege o sistema como um todo (lembre-se, o * NIX era originalmente um ambiente multiusuário usado por muitas pessoas) de código malicioso executado a partir de uma conta de administrador, seja através de malware ou alguém fazendo logon terminal ativo. Da mesma forma, sudo permite que todas as ações do administrador sejam registradas e revisadas a qualquer momento. Compare isso com o antigo método su , em que você, realisticamente, não tinha ideia de quem executava o comando.

Além disso, com base no modelo de permissão do Linux, sudo pode impedir que um usuário cometer erros potencialmente perigosos como acidentalmente desinstalando um programa crítico, apagando um disco rígido ou qualquer outro número de coisas desagradáveis que nunca devem ser feitas sem alguma confirmação.

TL; DR:

Realmente, sudo é apenas um remanescente (muito útil) dos verdadeiros ambientes multiusuário de antigas instalações * NIX. No entanto, ainda mantém a sua utilidade, protegendo o sistema de malware ou seqüestro de sessão. Na típica mentalidade * NIX, a proteção da conta real do administrador é um exercício deixado para o administrador.

Se você estiver preocupado com alguém sentado em seu computador enquanto estiver fora e mexendo com sua privacidade, basta bloquear sua tela / sessão. Mesmo assim, o acesso físico é um assassino .

    
por Kaz Wolfe 06.07.2017 / 00:25
0

o espaço do usuário não tem acesso aos arquivos principais do sistema, isso impede que códigos maliciosos como vírus e rootkits sejam instalados por eles mesmos.

O comando sudo dá à pessoa o acesso à raiz do teclado para que ele possa modificar a instalação.

Há pouco que você pode fazer para proteger de alguém sentado em seu computador com sua senha.

    
por ravery 05.07.2017 / 23:17
0

Então, como você mesmo afirmou, o comando sudo está fazendo o seu trabalho perfeitamente, está cuidando do que ele supõe:

  • Com base nas definições, decide quem pode fazer que tipo de coisa?
    • com base em /etc/sudoeres ou /etc/sudoeres.d
    • por exemplo: o usuário bob tem permissão para executar rm usando o usuário root on ALL machines?
  • Em seguida, ele verificará se o usuário realmente é quem ele afirma ser.
    • Solicitando senha

O que está errado aqui é que você está permitindo que um usuário não confiável use seu sistema, e é aí que isso causa o dano (não ao sistema, na sua conta).

Você não deve permitir que qualquer pessoa que você não confie para usar seu computador, seja como executar um programa malicioso e com exceção de que nada aconteça.

Use sudo , não permita que ninguém use sua conta para a qual você está seguro ...

    
por Ravexina 05.07.2017 / 23:20
0

sudo tem um objetivo específico: permite que usuários autorizados escalem seus privilégios atuais de maneira controlada. O impacto prático disso depende de como você está usando privilégios em seu sistema. Normalmente, os usuários não usam privilégios para silenciar seus dados, portanto, sudo não protege esses dados.

No entanto, se você realmente quisesse, você poderia usar o sudo para proteger mais coisas; Por exemplo, você pode criar outra conta de usuário que exista apenas para executar o navegador da Web, o que significa que ninguém usando sua conta normal poderá acessar seus cookies ou cache sem passar por sudo . Você pode ainda criar outro usuário para editar documentos do Office para protegê-los contra alterações feitas por sua conta normal. E assim por diante. Isso geralmente não é feito porque é um grande inconveniente para o benefício mínimo, mas é possível fazer se os dados forem suficientemente sensíveis.

O outro ponto é que esses privilégios se aplicam a todos os programas em todo o fórum. Restringir o acesso ao terminal e ao gerenciador de arquivos não protegeria contra alterações não autorizadas feitas através de um processador de texto (digamos que eu carreguei alguns dos documentos editados recentemente e exclua todo o texto), mas se o usuário conectado não tiver permissão para visualizar ou editar os arquivos, então o programa no pode editá-los sem sudo , independentemente de ser um terminal, gerenciador de arquivos ou outro.

    
por Paul 05.07.2017 / 23:47