O que há de errado em sempre ser root?

83

Sinto que essa é uma pergunta estúpida, mas isso é algo que me pergunto por um tempo.

Eu tenho um VPS e este é o meu primeiro grande empreendimento Linux. Eu sou a única pessoa que tem acesso a ele. Minha pergunta é: o que há de errado em fazer login como root, em vez de criar uma conta e conceder acesso ao sudo? Se um sudoer pode fazer tudo o que a raiz pode, então qual é a diferença? Se um hacker pode quebrar minha senha na minha conta padrão não raiz, ele também pode executar comandos sudo, então como um hacker que quebra minha conta root é mais ou menos importante?

ryeguy
fonte
28
Eu também comentaria que, se você não está familiarizado com o "Caminho Unix", essa não é uma pergunta estúpida. Você deve receber um bônus por pensar em fazer a pergunta em primeiro lugar como um novo administrador do Linux.
22248 Bart Silverstrim
E gostaria de comentar algumas das respostas. Particularmente os que dizem "você pode estragar tudo sendo raiz". Eu não acho que esse é o ponto ... "rm -rf /" faz o mesmo que "sudo rm -rf /". O ponto reside no fato de que coisas como "sudo rm" não funcionam, mas "sudo startMyApp on low port" funciona.
Zlatko
o que há de errado em nunca ser?
Ostendali #

Respostas:

70

Se você está logado como root, pode facilmente apagar diretórios ou fazer algo que, em retrospecto, é realmente estúpido no sistema com um simples toque do dedo, enquanto como usuário, normalmente você precisa colocar alguns ciclos mentais extras no que deseja. está digitando antes de fazer algo perigoso.

Além disso, qualquer programa que você executa como root como privilégios de root, ou seja, se alguém ou algo faz com que você execute / compile / navegue em um site perigoso e queira danificar seu sistema, como um trojan ou outro malware, ele terá acesso total ao seu sistema e pode fazer o que quiser, incluindo acesso a portas TCP abaixo de 1024 (para que ele possa transformar seu sistema em um remailer sem o seu conhecimento, por exemplo).

Basicamente, você está pedindo por problemas que o login, como pode impedir. Conheço muitas pessoas que ficaram felizes por terem essa rede de segurança em um momento de descuido.

EDIT: Há também a questão do root ser o mais conhecido, portanto, um alvo fácil, para scripts e hacks. Sistemas que desabilitam a conta e forçam os usuários a usar o sudo significam que qualquer tentativa de quebrar o root do ssh ou de uma exploração local na conta está batendo com a cabeça na parede. Eles teriam que adivinhar / quebrar uma senha e nome de usuário. É uma segurança através da obscuridade, até certo ponto, mas é difícil argumentar que isso não impede a maioria dos ataques de script infantil.

Bart Silverstrim
fonte
25
+1 - O uso de "sudo" torna a execução de programas como root um ato público. Não é uma questão de "parar os hackers", é uma questão de adquirir o hábito de trabalhar como um usuário não privilegiado e fazer da invocação de privilégios de root um ato público e pretendido.
Evan Anderson
2
Estou começando a me perguntar se Evan é realmente uma IA.
22410 Bart Silverstrim
11
Sudo também adiciona uma trilha de auditoria. Como quem, o quê e quando é registrado quando executado como sudo. Qual arquivo de log pode variar de acordo com a distribuição, mas as distros do RedHat tendem a usar / var / log / secure e o Ubuntu usa /var/log/auth.log .. Eu não tenho certeza se isso é verdade para todas as distribuições baseadas no Debian.
3dinfluence
3
+1 - não se trata apenas de direitos para criar coisas ou fazer coisas, mas também de direitos para destruir. Fazer logon como root (ou o equivalente em qualquer outro sistema operacional) é como andar por aí carregando uma arma com a segurança desligada. Você pode nunca intencionalmente tocar nesse gatilho, mas confiaria em si mesmo para fazer o mesmo?
Maximus Minimus
3
mh: / me coloca seu chapéu de caubói, tira a segurança da pistola, abre uma cerveja, murmura em voz baixa algo sobre amores-perfeitos e depois entra como raiz.
22610 Kyle Brandt
29

Se você não permitir que um idiota efetue login no servidor como root, nem sempre execute você mesmo como root. A menos que você consiga dizer que nunca foi um idiota. Não mesmo? Tem certeza que? :)

Benefício: reduz a possibilidade de você ser root e um idiota simultaneamente.

Tom Newton
fonte
6
+1 - "Benefício: reduz a possibilidade de você ser root e um idiota simultaneamente." Eu absolutamente amo isso.
Evan Anderson
+1 na filosofia de Scott Adams de que todo mundo é um idiota. :) Sim, isso significa que você e eu também.
24515 Ernie
Absolutamente - esta é uma das minhas principais perguntas nas entrevistas de emprego - quando você estragou a última vez? Todo mundo tem, você só precisa ler os tópicos aqui sobre "o mais divertido sysadmin fubar" ou o que quer. Se alguém não admitir ter cometido um erro estúpido pelo menos uma vez na vida, provavelmente há algumas razões pelas quais você não deseja trabalhar com elas.
Tom Newton
9

A principal razão são os erros. Se você é sempre root, erros de digitação simples podem realmente estragar o sistema. Se você fizer login apenas como root ou usar o sudo para fazer as coisas que exigem, você minimizará o risco de cometer um erro perigoso.

Kyle Brandt
fonte
9

Quando você é root, fica preguiçoso com as permissões, já que tem acesso a tudo o tempo todo, não se importa quando as coisas são 777 ou 644 ou o que quer. Portanto, se você deixar qualquer outra pessoa entrar no seu sistema e não desejar ter acesso a tudo, de repente, torna-se uma verdadeira dificuldade tornar a máquina segura para ser usada por outras pessoas.

Stu
fonte
5
Isso é chamado de "podridão raiz".
kmarsh
11
Eu gosto desse termo "podridão da raiz". De fato, rodar como root o tempo todo pode transformar máquinas * nix em máquinas esquisitas do tipo Windows 95 sem aparência de segurança para vários usuários. (Lembro-me de uma máquina de SCO, anos atrás, onde cada usuário no aplicativo de contabilidade compartilhada foi executado como root porque "fez os problemas de permissão de ir embora"> suspirar <..)
Evan Anderson
Lembro-me de ter recebido uma explicação como essa - eles tinham uma ferramenta de lista de discussão em execução como raiz, junto com o sendmail. Minha resposta foi "Os problemas de permissão desapareceram também para os hackers".
duffbeer703
7

Existem alguns princípios básicos para não fazer login como root: 1) A senha root nunca é enviada pela rede no momento do login 2) Não há como saber quem fez alguma coisa se vários usuários fizerem login com a mesma conta (root ou outra). 3) acidentalmente fazendo algo 'estúpido'

Jeff Hengesbach
fonte
3

É mais uma proteção contra você, para que você tenha uma segunda chance de revisar os comandos de privilégios mais altos que está tentando executar, análogos ao UAC no Windows. É muito fácil fazer algo acidentalmente rm -rf /enquanto estiver logado como root.

Além disso, você tem rastreabilidade. Esse não é um grande problema na sua situação em que você é o único (teoricamente) a emitir comandos, mas a capacidade de registrar e rastrear um indivíduo é um componente essencial para muitas formas de análise.

squillman
fonte
A rastreabilidade é crucial em sistemas em que mais de uma pessoa trabalha como administrador de sistemas. Não é apenas desejável, é exigido por regimes regulatórios.
APC
Eu fiz isso na sexta-feira. em vez de excluir "/ dump / folder /" eu apaguei a pasta /. Uma barra invertida fedorenta me lembrou por que não fazemos login como root.
Oneodd1
2

A diferença é principalmente:
que você não pode fazer nada de errado por acidente.
esse código "maligno" não pode dominar o sistema.
Aviso: código malicioso não significa necessariamente que alguém já tenha acesso ao sistema.

StampedeXV
fonte
Notei que hoje em dia, códigos maliciosos geralmente significam bots de spam, que podem ser executados como qualquer usuário.
24515 Ernie
Se você pensa em um vírus (tentando destruir algo) ou em um rootkit, é muito mais complicado para o malware se você não for um root.
StampedeXV
2

Você sempre deve usar contas com o menor nível de privilégio possível. A execução como raiz o tempo todo incentiva maus hábitos e preguiça que tornarão a vida desagradável quando você estiver trabalhando com vários usuários ou expor algo a uma rede pública / semipública.

Lembre-se também de que a quebra de senha é apenas um cenário de comprometimento - e também não é o cenário mais comum. É mais provável que você seja vítima de uma vulnerabilidade do navegador ou de um daemon em execução no seu sistema.

Pense no código que você usa sem pensar. Por exemplo, a porta Linux do Adobe Flash, que é uma pilha fumegante de cocô que só se tornou utilizável em um passado relativamente recente. Quão seguro você acha que esse código é? Deseja que seja capaz de exercer controle total do seu sistema?

duffbeer703
fonte
2

Pode prevenir contra ataques de força bruta SSH. Todo unix tem uma conta 'root'. No entanto, não está claro de fora qual seria o seu nome de usuário 'sudo'. Portanto, se alguém quiser tentar entrar com força bruta, eles sabem que há uma conta raiz e provavelmente a tentarão. No entanto, eles não sabem por onde começar se você estiver usando o sudo.

Rory
fonte
1

Meu conselho seria tentar usar root o tempo todo por um tempo; em breve você descobrirá por que não deveria :)

Chopper3
fonte
1

Mesmo que eu não confie na "segurança pela obscuridade", certamente há uma vantagem em usar um logon personalizado em vez do logon raiz sempre existente. Assim, você também pode configurar o SSH para impedir o login raiz.

Como já foi dito, o root pode fazer tudo sem nenhuma confirmação. Portanto, o uso de um usuário sem privilégios pode evitar erros e erros estúpidos.

Outro argumento a favor de várias contas de usuário é executar softwares diferentes em usuários diferentes. Fazendo isso, se uma falha de segurança for explorada em um aplicativo, o explorador poderá acessar apenas arquivos e recursos acessíveis ao seu usuário em execução.

Um último ponto para não usar raiz: consumo de recursos. A raiz não tem limite de quanta memória, tempo de processamento, manipuladores de arquivos ou espaço em disco ele pode usar. Em muitos sistemas de arquivos, existem blocos de dados reservados apenas para a raiz. Portanto, um usuário normal nunca pode usá-los para preencher seu disco. O comando ulimit também pode ser usado para restringir o número de memória e manipulador de arquivos que um usuário pode consumir. Mas se você é root (ou um aplicativo sendo executado como root), nada impede que você altere esse limite.

rolaf
fonte
0

Sim, concordo com você e acho que é uma questão de proteção contra erros humanos e, às vezes, contra programas maliciosos. O ruim que eu nunca vi é usar o root como a conta padrão do gnome.
Eu acho que a maioria dos usuários que fazem isso são usuários do Windows recentemente migrados para Linux ou Unix. Tente copiar o uso do privilégio de administrador para fazer root.

Ali Mezgani
fonte
0

Não há nada errado em fazer login como root. Ajuda a desenvolver a memória muscular para digitar apenas comandos seguros e promove a precisão do pensamento ao executar ações com grandes consequências. Eu recomendo trabalhar como root para melhorar a administração do sistema.

você também pode fazer coisas legais como ping -i 0.2 -c 1000 example.com

lee
fonte