É 'OK' usar o usuário root como um usuário normal?

94

Eu habilitei o usuário root no meu Mac para que eu possa entrar nele e executar o Finder etc. Sendo a pessoa preguiçosa que sou, apenas transferi tudo do meu diretório pessoal para /var/root. Não tenho muita certeza disso, por isso posso mudar tudo de volta. É tecnicamente 'OK' estar usando isso como um usuário normal? (Eu sou o único que pode acessar meu computador.)

智障 的 人
fonte
6
Boa pergunta com o 'el Capitan' sem raiz ao virar da esquina.
CousinCocaine
4
O que especificamente significa (acessar meu computador) significa. Você provavelmente se conecta à Internet. Você não especifica qual software você dá acesso ao computador. Como você está 'OK'? Parabéns por obter ótimas respostas gerais. Provavelmente é melhor fazer a pergunta mais detalhada (se houver) como uma pergunta de acompanhamento.
bmike
6
Você pode usar uma conta root como usuário normal, desde que saiba a resposta para a pergunta "É 'OK' usar o usuário root como um usuário normal?". Depois de saber a resposta, você não saberá. ;-)
Dakshinamurthy Karra
Você pode querer adicionar a distinção entre root, administrador e usuário normal. Eu acredito que admin é o padrão.
Steve Moser
6
"Eu sou o único que pode acessar o meu computador" <- Lol
Tim

Respostas:

352

Usar o computador conectado como root o tempo todo é como carregar sempre todas as suas chaves, seu passaporte, US $ 5.000 em dinheiro, aquele pedaço de papel com todas as suas senhas escritas e a única foto que você tem de Flopsy, o adorável coelho cujo a morte quebrou seu coração de sete anos. Ah, e uma serra elétrica.

Ou seja, é muito conveniente de vez em quando, porque significa que você pode fazer o que quiser, quando quiser, sem precisar voltar para casa para comprar coisas ou conversar com o gerente do banco. Mas também o coloca em grande risco de perder coisas, roubá-las (não pense que a serra elétrica o ajudará: você estará nas ruas antes de perceber que sua carteira acabou), fazendo coisas das quais se arrepende mais tarde (compra por impulso) bilhetes de avião para Vegas enquanto bêbado), pegando atalhos perigosos (motosserra através da cerca do leão, porque esse é o caminho mais rápido para os pandas) e reagindo exageradamente (motosserra o carro do seu vizinho porque o cachorro dele late muito). E, quando você pensa sobre isso, principalmente, você está indo ao escritório, fazendo compras, saindo com seus amigos. Você não você não precisa de todas essas coisas o tempo todo, apenas para a conveniência de precisar, o quê ?, uma vez por mês? Uma vez por semana?

Portanto, não, não há problema em usar a conta root o tempo todo. Dá a você uma pequena quantidade de conveniência, mas o coloca em grande perigo. Existe o risco de erros estúpidos terem resultados catastróficos ("Ei, por que está rm -rf *demorando tanto para ser executado? **** Estou dentro /!"). Existe o perigo de se acostumar com a idéia de que todos os arquivos são iguais e você pode mexer no que quiser, em qualquer lugar da árvore de diretórios. Existe o perigo de que qualquer invasão de sua conta seja imediatamente uma invasão de todo o sistema; agora, todo software da sua máquina é fundamental para a segurança. E mesmo que você ache que não liga para a máquina ser hackeada (afinal, a foto de Flopsy é um pedaço de papel brilhante, não um JPEG efêmero), eu me importo com o fato de sua máquina ser hackeada porque está na botnet que está montando o ataque DDOS contra qualquer serviço de Internet que eu não possa acessar hoje.

Raiz é sua fantasia de homem-aranha. Dá-lhe grande poder, mas requer grande responsabilidade. Está lá no armário sempre que você precisar, para não precisar usá-lo o tempo todo.

David Richerby
fonte
54
Não só isto foi uma peça divertida e bem escrito, ele também anéis da verdade e é bem merecedor da resposta aceita
wrossmck
17
Eu continuo voltando a isso. Este é um conselho genuíno com a maior quantidade de humor que você pode colocar em algo e ainda assim leva a sério.
智障的人
19
@ 9000 Esse não é o caso desde pelo menos XP.
David Richerby
28
a morte de flopsy e a motosserra estão relacionadas?
Sirex
29
"Raiz é sua fantasia de homem-aranha". Estou morrendo aqui.
GeminiDomino
23

Você pode, mas é um grande risco de segurança e estabilidade. Isso permite que qualquer aplicativo tenha acesso total ao seu computador. Você não pode saber o que eles estão fazendo com esse acesso. É desnecessário e realmente inseguro.

Para muito mais informações básicas sobre isso, consulte

William T Froggard
fonte
Eu removi os comentários porque eles realmente não foram adicionados à resposta. Você pode continuar a discussão no chat?
nohillside
Obrigado pelas edições. Espero que isso corrija um pouco da confusão em relação ao meu post.
William T Froggard
17

Sinceramente, concordo que existem muitos riscos associados ao uso do rootusuário como padrão. Mas deixe-me examiná-los e criticar um pouco os argumentos

  • Defesa contra aplicativos : Praticamente o sistema de permissão do * nix não é forte o suficiente (de longe) para permitir a execução de programas arbitrários. Um programa malicioso no * nix é capaz de fazer coisas ruins o suficiente (como roubar suas credenciais bancárias) sem permissões de root. Será um pouco mais difícil para um não rootaplicativo do que para um rootaplicativo (por exemplo, em vez de instalar diretamente um certificado raiz e interceptar a conexão com o banco, você precisará mexer no navegador, mas, ei, isso é realmente factível e você provavelmente fez isso de qualquer maneira para garantir que o usuário não notasse nada)
  • Defesa contra erros do usuário (como executar um comando errado e excluir todos os arquivos do sistema) : Absolutamente verdadeiro, mas mesmo que um não rootusuário salve o sistema, todos os arquivos importantes normalmente já estarão perdidos (já que os arquivos de propriedade do usuário são muito mais provavelmente único).
  • Defesa contra bugs exploráveis ​​nos aplicativos que você executa: Agora é mais assim. Por exemplo, quando você executa um servidor web em que muitos aplicativos são abertos para o exterior e, portanto, quaisquer bugs exploráveis ​​serão facilmente alcançados. O mesmo ainda se aplica, é claro, mesmo se você estiver sentado atrás de um roteador e firewall, embora a extensão do perigo seja muito menos significativa. Mais uma vez, porém, a questão se torna quanto o sistema de permissão defenderá realisticamente em um sistema privado. Sem rootpermissões, todos os arquivos privados ainda podem ser acessados ​​e a interceptação de dados da rede também é possível ... as duas coisas mais importantes que você pode desejar como invasor de um sistema privado.
    • (Agora, além do sistema de permissão de arquivos * nix padrão, a Apple também introduziu um sistema de sandbox de aplicativos. Tanto quanto eu sei que um ainda é totalmente funcional, mesmo quando logado como root. Se, no entanto, não fosse, isso seria um negócio total.)

De qualquer maneira, todos consideraram que não acho que seja uma idéia tão terrível quanto alguns afirmam. Lembre-se, também não estou dizendo que é uma boa ideia, mas acho que as pessoas superestimam a utilidade do modelo de permissão do sistema de arquivos * nix para protegê-lo. Sim, é incrivelmente útil para certas coisas (por exemplo, sistemas multiusuário, servidores complexos de aplicativos múltiplos, manter o sistema funcionando não importa o que aconteça (executando, mas não seja utilizável necessário), bloqueando arquivos importantes (embora seja melhor criptografá-los ...), etc.), mas não é uma proteção mágica que impede que coisas ruins aconteçam.

Nos comentários, criei uma analogia que parece bastante adequada para descrever a situação. Em holandês, temos uma palavra para o pequeno armário, onde você pode encontrar todos os medidores e as chaves para o abastecimento de água principal, etc. Funcionar como uma rootconta de usuário é como tirar a trava daquele pequeno armário. Fato irônico: a maioria das pessoas não tem travas nele. Agora, assim como com orootusuário que não quer dizer que não é útil trancá-lo em certos casos; por exemplo, em escritórios ou outros edifícios semi-públicos, ele costuma estar trancado, mas em casas normais é muito mais importante ter uma fechadura forte na porta da frente ( não instalando coisas aleatórias, firewall, etc.) e colocando todas as suas coisas importantes em um cofre (fazendo backups, coisas de criptografia, etc.). Uma fechadura extra naquele armário machucará? Não, então pode ser uma boa ideia colocá-lo em prática, mas com toda a probabilidade será inútil.

Correr como rootusuário não é nada como pegar todas as fechaduras da sua casa e carregar todas as coisas no cofre com você o tempo todo, como afirma David Richerby. Seu passaporte (identidade) não é de forma alguma protegido pelo sistema de arquivos * nix, seu dinheiro (conta bancária) não é de forma alguma protegido pelo sistema de arquivos * nix, suas senhas importantes provavelmente não são protegidas pelo sistema de arquivos * nix (se você está usando o Safari, no entanto, eles podem realmente ser protegidos parcialmente pelo modelo de permissão do sistema de arquivos * nix, mas semroot você ainda pode adicionar uma extensão invisível ao Safari e, em seguida, interceptar a senha na próxima vez em que usá-la), suas fotos definitivamente não são protegidas pelo sistema de arquivos * nix e, se você estiver usando o terminal, já estará carregando uma serra elétrica por aí com você (por ponto 2 acima).

David Mulder
fonte
2
Se você recusar uma resposta, indique o que seria incorreto na minha análise. Estou perfeitamente ciente de que minha resposta é um pouco ortodoxa, mas espero que as TIC sejam progressivas o suficiente para que as respostas sejam julgadas pelo seu conteúdo, e não pelo quão bem elas se encaixam nos dogmas tradicionais.
David Mulder
3
Isso merece mais votos. As únicas coisas com as quais realmente me importo no computador são os arquivos pertencentes ao meu usuário (não raiz). Eles representam minhas fotos, minhas músicas, vídeos de minhas filhas .. o resto pode ser reinstalado facilmente!
Isak Savo
6
Essa lógica é basicamente o mesmo que dizer, porque os abridores remotos de portas de garagem são bem fracos, realmente não seria grande coisa se ninguém fechasse as portas de garagem. A premissa é verdadeira, mas o conselho é falso. A segurança efetiva é composta por muitos pequenos pedaços trabalhando juntos. Como todo mundo em um bairro que mantém as garagens fechadas. Torna o bairro mais seguro para todos.
Caleb
2
@Caleb Há uma enorme diferença entre possuir uma casa em um bairro e convidar alguém para entrar. E quando alguém entra em sua casa, há pouco para detê-lo nos sistemas * nix padrão. É o que estou descrevendo nesta resposta: uma vez que alguém invadir seu sistema, as permissões do sistema de arquivos * nix não ajudarão, porque não estão protegendo as coisas que você considera importantes em um sistema privado. A única coisa que é (cont.)
David Mulder
3
Não ter raiz não a impede, com certeza. Mas essa é uma afirmação sutilmente diferente; mais ou menos como eu disse "ataque", não "compromisso". Você pode fazer muito mais na rede com root. Se sua máquina zumbi estiver participando de uma simples inundação de ICMP, por exemplo, você precisará de acesso a soquete bruto para gerar esse tráfego de ICMP (e é por isso que o ping é suid root). O mesmo vale para várias outras modificações úteis de pacotes maliciosos.
dannysauer
14

Por volta de 1990, eu estava trabalhando em um projeto com um cara chamado Tom. Estávamos usando um servidor SUN executando o SunOS (um derivado do Unix, predecessor do Solaris). Isso aconteceu nos dias que antecederam as unidades de CD e flash, portanto, se você estragou o SO no disco rígido, não havia como se recuperar.

Tom costumava fazer login rotineiramente como root. Eu disse a ele que era uma má ideia, mas ele não ouviu. Um dia eu o ouvi dizer "Uh-oh". Ele pretendia digitar algo assim:

mv something* .

Infelizmente, ele deixou o ponto final, então o shell expandiu todos os nomes de arquivos e diretórios que correspondiam a esse padrão. Em seguida, o comando mv usou o que acabou como o nome final na lista como o diretório de destino e moveu todo o resto para ele. Infelizmente, ele estava atualmente no diretório raiz, então basicamente todo o sistema de arquivos foi movido para um de seus subdiretórios.

Usei a seta para cima para recuperar o comando anterior e vi o que havia acontecido. A primeira coisa que eu disse foi: "Não faça logoff! Ou você nunca poderá fazer logon novamente".

Não tem problema, certo? Nós poderíamos simplesmente mudar tudo de volta. Poderíamos, exceto que o comando mv não era um dos comandos internos do shell. Em vez disso, era um programa executável, armazenado em um dos arquivos que foram movidos. Felizmente, ls era um comando interno; portanto, depois de usar ls para confirmar para onde os comandos foram movidos, eu consegui encontrar o comando mv, invocá-lo com o nome completo do caminho e colocar as coisas de volta onde deveriam estar. .

E então eu disse a ele: "Tom, é por isso que é uma má idéia rotineiramente fazer login como root".

Mike Ciaraldi
fonte
10

Geralmente, você deseja manter a propriedade dos seus arquivos pessoais separados do usuário root. É por isso que você cria uma conta para si próprio como administrador. A maneira aceita, no OS X, de obter acesso no nível raiz é usar o sudocomando do aplicativo Terminal. Por exemplo, se você deseja ver o particionamento da sua unidade interna, o comando é

gpt -r show /dev/disk0

que, se inserido, resultará na seguinte mensagem de erro.

gpt show: unable to open device '/dev/disk0': Permission denied

Para usar o comando, você precisa usar sudocomo mostrado abaixo.

sudo gpt -r show /dev/disk0

Se você deseja se tornar o usuário root para evitar entrar sudo, basta entrar sudo sh. O exitcomando pode ser usado para deixar de ser o usuário root.

Se você deseja executar um aplicativo como usuário root, pode usar o aplicativo Terminal. Por exemplo, se você deseja iniciar o Finder como usuário root, digite o seguinte comando.

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder &

Para evitar a confusão de ter dois aplicativos Finder abertos ao mesmo tempo, geralmente é melhor sair primeiro do aplicativo Finder. Isso pode ser feito usando o seguinte comando do terminal.

osascript -e 'tell application "Finder" to quit'

Uma palavra de cautela: preceder um comando com sudonão é o mesmo que se tornar o usuário root. Por exemplo, os comandos

sudo echo $USER
sudo echo $SUDO_USER

resultam na mesma saída que os comandos mostrados abaixo.

echo $USER
echo $SUDO_USER

Se você se tornar o usuário raiz (o superusuário), os mesmos comandos resultarão em uma saída diferente. Isso pode ser verificado digitando os comandos mostrados abaixo.

sudo sh
echo $USER
echo $SUDO_USER
sudo echo $USER
sudo echo $SUDO_USER
exit
David Anderson
fonte
4

Caso os outros motivos não sejam bons o suficiente ... Não esqueça que você não pode usar o Homebrew como raiz (o que é realmente uma grande dor). Outros programas também não permitem que você os use como root ou se deparam com problemas de permissão quando o fazem, muitas vezes sem motivo aparente, porque seus programadores assumem que não serão executados como root. Eu acho que o Steam é um deles.

Também é bom separar todo o sistema e as coisas do usuário por vários motivos.

Não sei se é tão ruim assim um problema de segurança. Pessoalmente, eu ficaria mais preocupado com problemas de organização e permissões do que qualquer outra coisa.

sudo
fonte
4

Apenas alguns exemplos de por que não é correto sempre executar como root:

  • O usuário root pode facilmente colocar arquivos em locais muito mais difíceis de rastrear.
  • O usuário root tem acesso bruto às interfaces e, portanto, pode colocar uma interface no modo promíscuo ou de monitor e registrar TODO o tráfego de rede.
  • O usuário root tem acesso bruto aos nós do dispositivo e pode debitar um disco, tornando muito mais difícil recuperar arquivos do que um simples 'rm' no nível do usuário. O usuário root também pode potencialmente modificar os setores de inicialização de uma unidade, tornando o malware persistente mesmo após a reinstalação do sistema operacional.

Eu poderia continuar. O ponto é que existem boas razões para não rodar como root. Não discordo que, para a maioria das pessoas, os dados mais pessoais estejam no diretório inicial, mas a execução como raiz ainda coloca esses dados e todo o sistema em maior risco. O conselho para não executar como root não é extraviado. Se uma pessoa não entende as implicações de executar como root, ela definitivamente não deveria fazê-lo. Sugerir qualquer outra coisa é irresponsável.

bodangly
fonte
1

A menos que você esteja usando o backtrack / kali para uma tarefa específica: NÃO. Trate o superusuário como faria com uma arma carregada: se você tiver uma necessidade e intenção imediatas de usá-la: OK. Se você puder resolver seu problema de qualquer outra maneira, no entanto (por exemplo, "sudo"), faça isso.

SamWN
fonte
0

NÃO! Isso fará com que seu sistema seja invadido em um período muito curto de tempo. Em vez disso, suou sudona raiz, conforme necessário. Se você absolutamente, positivamente, deve executar como root, pelo menos, desconecte-se a qualquer momento quando não estiver usando o computador. Se o seu sistema é capaz de executar multi-usuário, mas nenhum usuário estiver configurado, eu sugiro que você crie um usuário privilegiado (ou seja: aquele que pode sudo/ su. Em raiz necessário) o mais rápido possível !!!

tucker twomey CodeZypher
fonte