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?
linux
ssh
permissions
ryeguy
fonte
fonte
Respostas:
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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'
fonte
É 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.
fonte
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.
fonte
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?
fonte
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.
fonte
http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html
fonte
Meu conselho seria tentar usar root o tempo todo por um tempo; em breve você descobrirá por que não deveria :)
fonte
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.
fonte
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.
fonte
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
fonte