Por que não há opção para fazer login como root?


39

Por que o Ubuntu não permite que os usuários da GUI efetuem login como root no momento do início do sistema como administrador no Windows?

Por que eles estão nos restringindo a fazer login apenas através do terminal?


4
Esteja ciente de 'gksu', que permite executar aplicativos gráficos como root. Ou seja, "gksu nautlius"
Jeremy

11
Algumas distribuições permitem que você faça login no X como root. O CentOS6.2 é um deles.
21412 djangofan

Respostas:


42

Porque não é recomendável fazer isso, a menos que você saiba exatamente o que está fazendo. Raiz é um superusuário, o que significa que pode fazer tudo e qualquer coisa - destina-se apenas a tarefas administrativas. As tarefas do dia-a-dia podem arcar com um risco de segurança que SERÁ explorado se TODOS (ou uma grande proporção de usuários) usarem raiz. Pense no Windows - 99% dos problemas de malware e vírus são de pessoas que usam contas de administrador para tarefas diárias.

Vejamos um exemplo.

E se alguém invadir o seu sistema e pedir para apagar seus discos? Se você estiver executando como um usuário normal, os únicos arquivos que você (deverá) poderá remover são aqueles que pertencem a você e não a mais ninguém. Se, por exemplo, você tiver outras pessoas usando o computador, os arquivos deles não serão tocados, por mais que você tente. Isso significa que você não poderá alterar nenhum arquivo do sistema e, portanto, seu sistema permanecerá sólido e não será afetado / não infectado.

Se você executar como root, no entanto, poderá limpar completamente o disco rígido, provavelmente danificar o próprio hardware e, geralmente, inutilizar o sistema. Correção: qualquer pessoa que possa executar um único comando como root no seu computador (algum site malicioso ou um anexo de email) pode fazer isso.

Dê uma olhada em http://everyjoe.com/technology/explain-why-not-log-on-as-root/ , é um bom artigo que pode explicar melhor do que eu.

EDIT: aqui está outro http://ihazomgsecurityskillz.blogspot.nl/2010/09/running-as-root.html

EDIT2: você sempre pode usar sudo commandou gksu commandexecutar o commandcomo superusuário, ambos funcionam com utilitários gráficos e de linha de comando. sudonormalmente é usado para a CLI e gksué a senha gráfica promt que faz a mesma coisa.

Até certo ponto, eles permitem que você se torne roottemporariamente - muito, muito melhor do que executar como root constantemente e arriscar a instabilidade.


11
Mas por que o Fedora permite essa opção na inicialização?
precisa

5
O Ubuntu foi projetado para ser fácil de usar, e eu suspeitaria que, ao desabilitar o root, eles removem a tentação de usuários normais (leia-se: iniciantes no Linux) rodando como root.
evgeny

Eu não te entendi.
Renjith G

2
Meu comentário estava um pouco errado. Vamos dizer o seguinte: ao impedir o login gráfico de root, ele impede que as pessoas corram como root, a menos que elas saibam o que estão fazendo. Ou seja, na minha opinião, só deve ser permitido para usuários experientes que conhecem e compreendem todos os riscos.
Evgeny 13/10/10

11
Ele deve ser um pouco agressivo, apenas para empurrar os leitores de volta à realidade e realmente fazer uma observação.
#

11

No Ubuntu padrão, rootlogins não são permitidos, nem no gerenciador de login GDM (gráfico), nem no console de texto (ou seja, o que você obtém se pressionar Ctrl+ Alt+ F1).

Para executar rootoperações (ou seja, administrador), é necessário usar o sudocomando em um terminal ou qualquer GUI equivalente: eles solicitarão sua senha e, em seguida, executarão a operação privilegiada solicitada (e somente essa).

A razão para esse comportamento é, como outros salientaram, que a execução de rootoperações é inerentemente arriscada e o número de operações que realmente exigem rootprivilégios é comparativamente pequeno: usando essa sudoabordagem, você está executando a maior parte do tempo com uma conta não privilegiada (ou seja, inofensiva para o sistema e outros usuários) e apenas obtenha os rootpoderes quando for realmente necessário.

Um exemplo pode ajudar a esclarecer. Suponha que você deseja instalar um novo serviço (daemon) em sua máquina; isso é relativamente novo e você precisa ler sobre isso e como configurá-lo para suas necessidades. Você acabará navegando muito na Web para encontrar informações, configurações de exemplo, etc., talvez tenha algum bate-papo no IRC para solicitar mais informações - nada disso requer rootpoderes! No final, você só precisa de acesso privilegiado para duas operações:

  1. instale o novo programa (ou seja sudo apt-get install ...) e
  2. edite a configuração padrão

Um princípio comumente aceito em segurança de computadores é sempre usar o menor nível de privilégio possível para executar uma operação. - isso reduz o risco de que algo ruim aconteça devido a erros no software ou erros do operador.

A configuração padrão do Ubuntu segue nesta direção; se você estivesse usando um rootlogin, acabaria navegando na Internet, fazendo o IRC (e possivelmente todas as outras coisas que se faz simultaneamente) a partir da rootconta, expondo desnecessariamente o sistema a uma ameaça.

Atualização: Para o seu exemplo de compilador, eu continuaria desta maneira:

  1. Entre no nó via SSH como seu usuário comum e em outro nó do Ubuntu ou GNU / Linux onde você tem uma exibição gráfica X11 em execução. Certifique-se de ativar o encaminhamento do X11 pelo SSH:

    ssh -X myuser@remotemachine.example.org
    
  2. No prompt shell / SSH, emita o comando:

    sudo /path/to/the/compiler/install/program
    

    Isso executará o instalador do compilador com rootprivilégios e acessará (através do encaminhamento SSH) a exibição gráfica à sua frente.


Está bem. Suponha que eu esteja usando uma máquina Linux (com 10 usuários conectados por meio de massa). Eu quero instalar um software (por exemplo: um compilador, também preciso definir variáveis ​​ambientais para o mesmo) como raiz para estar disponível para todos os usuários. Mas o instalador funciona apenas com o modo GUI e nenhum instalador de linha de comando e será executado apenas com o login raiz. Como posso gerenciar a instalação? Eu conheci essa situação durante a instalação do braço-linux-gcc no meu ubuntu, mas eu tenho instalado com sucesso o mesmo em minha máquina fedora (versão Picanço RedHat)
Renjith G

@ Renjit G: bem, essa é uma boa pergunta por si só, por que você não pergunta?
Riccardo Murri

11
@ Renjit G: Eu quis sugerir que você faça uma nova pergunta. Fazer muitas perguntas específicas é melhor do que fazer uma pergunta multifacetada, porque permite respostas detalhadas e objetivas. Ao editar a questão atual, as respostas que você já ter começado olhar como eles só responder a metade da sua pergunta ...
Riccardo Murri

Obrigado Murri. Definitivamente seguirei assim apenas dos meus próximos posts.
precisa

11
Dado um compilador como esse, acho que a maioria de nós ficaria curiosa sobre qual é o compilador. Para qualquer software distribuído por fontes APT ou arquivos .deb independentes, a instalação pela linha de comando usando "sudo" é suficiente (sim, mesmo para todos os usuários). Também é possível instalar esses arquivos da GUI para todos os usuários, sem ser root. O prompt de senha da GUI que você obtém é equivalente a "sudo".
prejudica

8

O raciocínio por trás do uso do sudo no Ubuntu pode ser encontrado aqui . Se você precisar de uma maneira rápida de "enraizar" eu uso sudo -sou sudo -i.


9
E para esclarecer, acredito que o sudo -s cria uma sessão raiz como o usuário, enquanto o sudo -i cria uma sessão raiz como o usuário raiz. A maneira mais fácil de saber a diferença é emitir o comando e, em seguida, fazer um "eco $ HOME" para ver qual ambiente está sendo usado. Ou "cd ~" então "pwd" também funcionaria.
Scaine

6

Além das montanhas de avisos com o uso do root, você pode ativar o login root efetuando login e executando o seguinte no terminal:

sudo passwd

Isso primeiro solicitará sua senha e solicitará que você altere a senha do UNIX. A senha que você digitar será para a rootconta.

O Ubuntu Wiki tem um ótimo artigo sobre as profundezas de root e sudo no Ubuntu - advertências e armadilhas.


5

Há duas perguntas aqui. Uma é: por que o login root é desativado por padrão no Ubuntu? Isso foi abordado por várias das postagens aqui.

A segunda pergunta é: por que os logins de raiz gráficos são particularmente depreciados?

Todas as desvantagens de logins raiz não gráficos também se aplicam a logons raiz gráficos. Mas quando você faz login graficamente, executa muito mais programas, operando de uma maneira muito mais complexa, do que quando faz login não graficamente. Toda a interface gráfica com o usuário e todos os programas gráficos necessários para usar uma GUI efetivamente seriam executados como raiz. Uma pequena vulnerabilidade de segurança em qualquer um deles permitiria que alguém assumisse o controle completo do seu sistema.

O login como root não é recomendado no Ubuntu, mas não há consenso na comunidade de segurança de que seja universalmente uma má prática. Os logins de raiz gráficos, no entanto, são simplesmente uma prática ruim e quase todos os sistemas operacionais os eliminaram gradualmente ou recomendam fortemente contra eles.

Em menor grau, ter um usuário não raiz (especialmente um com a capacidade de executar operações como raiz com sudo ou PolicyKit) em um logon gráfico apresenta riscos. Mas eles são muito mais controlados do que quando tudo no ambiente gráfico deve realmente estar funcionando como raiz com recursos ilimitados. Ainda assim, para situações em que a segurança é primordial, geralmente é aconselhável eliminar completamente as interfaces gráficas, e é por isso que o Ubuntu Server não é fornecido com uma GUI por padrão e recomenda oficialmente a instalação de uma (embora seja suportado) .

No mundo Windows, agora você pode instalar o Windows Server de uma maneira que elimina essencialmente a interface gráfica do usuário (tecnicamente, alguns elementos permanecem, mas são muito simplificados e você não pode executar programas gráficos arbitrários). Isso é baseado no mesmo raciocínio.

Mesmo se você decidir ativar logins raiz, não faça o login graficamente como raiz. A ativação de logins raiz pode colocar você em um risco de segurança um pouco maior; executar um ambiente gráfico inteiro como raiz coloca você em um risco muito maior.

Além disso, com exceção das ferramentas gráficas de administração projetadas para serem executadas como root no gksu / gksudo / kdesudo, a maioria dos programas gráficos não se destina à execução como root. Como eles não são extensivamente testados nesse modo, eles podem falhar ou se comportar erraticamente (o que seria particularmente ruim, pois eles estão executando como root ).

Finalmente, mesmo algumas ferramentas gráficas de administração, comousers-admin , falharão se executadas como raiz, pois esperam ser executadas por usuários normais e executam ações como raiz (sem nunca serem executadas como raiz) usando o PolicyKit.


4

Abra o Terminal ( Ctrl+ Alt+ Tou Página inicial do Dash> Mais aplicativos> Instalado (Expandir)> Terminal).

PARA ATIVAR A CONTA DE RAIZ

Em um terminal digite ou cole sudo passwd root. Digite sua senha de login normal (se você for solicitado), será solicitado que você digite a nova rootsenha e confirme.

PARA ADICIONAR UM NOVO PROMPT DE LOGIN QUE PERMITE ENTRAR NA RAIZ E NA SENHA

Em um terminal digite ou cole. gksudo gedit /etc/lightdm/lightdm.conf. Isso abre uma janela gráfica do editor de texto onde você pode editar o arquivo de configuração para a tela de login.

Adicione a linha greeter-show-manual-login=truena parte inferior do arquivo.

O arquivo agora deve ter a seguinte leitura:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true

Salve o lightdm.confarquivo e saia do gedit.

Reinicie o Ubuntu 12.04 e você verá uma nova janela "Login" (substitui a janela "Other" anterior) que permite a entrada de nome de usuário e senha. Digite rooto nome de usuário e a senha que você atribuiu à conta raiz.

Espero que isso ajude outras pessoas que precisam / desejam rootacessar.


2

quanto ao ubuntu 12.04 LTS, você pode fazer isso usando o privilégio root:

echo "greeter-hide-users=true" >> /etc/lightdm/lightdm.conf

Em seguida, é solicitado que você digite o nome de usuário e a senha para fazer login graficamente. Eu suponho que você já tenha definido a senha para root :)

Eu sei que existem inúmeras razões para você não fazer login diretamente como root; no entanto, existem alguns casos raros (por exemplo, em uma caixa de teste em execução no vmware) quando você realmente apreciava a conveniência de ser root.


1

Porque o usuário root e o administrador (no Windows) são equivalentes a um Deus em um computador. Esse usuário pode ajustar qualquer coisa, de permissões de arquivo até a exclusão de todo o sistema de arquivos. É bastante comum o usuário doméstico médio executar como Administrador (com esse nome ou outro nome configurado na primeira inicialização). Como qualquer programa executado como esse usuário é amplo no sistema, ele se torna perigoso.

A falta de controle sobre os privilégios administrativos permite vírus / malware ou mesmo problemas autodestrutivos. É por isso que muitas distros, incluindo o Ubuntu, limitaram a transição para a alta potência em uma etapa extra (uma etapa cognitiva que ajuda a insistir em que "quaisquer alterações que eu fizer aqui são de maior abrangência").


heh heh. ... "quaisquer alterações que eu fizer aqui são de escopo maior".
emf

1

Embora você não possa efetuar login diretamente como raiz (pelos motivos que outras pessoas já explicaram bem), é possível executar aplicativos da GUI como raiz. Por exemplo, Sistema → Administração → Synaptic Package Manager é um aplicativo gráfico que é executado como root.

Para executar um aplicativo como raiz (um aplicativo de texto ou um aplicativo GUI), basta usar um destes comandos:

sudo name-of-the-application
gksu name-of-the-application

Eles são quase idênticos. A principal diferença é que o primeiro solicita sua senha no terminal, o segundo utiliza uma janela de diálogo gráfica.


11
A diferença entre sudoe gksué mais significativa do que onde você digita sua senha. gksué o preferido para aplicações GUI e sudode linha de comando ver aqui e aqui
Warren Hill

1

O root realmente não é recomendado para uso normal, mas às vezes você tem uma longa lista de comandos do terminal que precisam de privilégios de root e é mais conveniente fazer login como root. Eu uso sudo xtermou gksu xtermpara abrir um terminal raiz. Acho um pouco mais fácil distinguir qual janela de termo tem privilégios de root quando você tem o prompt de termo "root @" útil


0

Nota adicional: O Ubuntu não está permitindo que os usuários da GUI efetuem login como root porque o Ubuntu impede que você remova ou exclua acidentalmente arquivos importantes com aplicativos da GUI (como nautilus).

Com apenas a interface do usuário da CLI, pode reduzir o risco de nosso erro. Mas antigamente não era possível fazer login com o root, mesmo no modo CLI, porque o Ubuntu cria uma senha aleatória para o root. A tarefa administrativa raiz somente pode ser executada usando a senha do usuário com o comando sudo ou gksu.

É baseado na regra Debian.


o que comando gksu significa?
Renjith G

11
Homem gksu: gksu - GTK + frontend para su e sudo
squallbayu

11
Sorry.Again, o suficiente para não claro para mim
Renjith G

Quero dizer 'gksu' significa frontend GTK + para su e sudo.
squallbayu

11
sim, você está certo. tente 'gksu nautilus' no terminal. O Nautilus com privilégios de root será exibido.
squallbayu

0

Dado que não há boas razões para fazer login como root , eu acho que a diferença entre RH (permitir login root) e ubuntu (fazer tudo usando o sudo / gksu) é uma questão de preferência.

Quanto à outra parte da sua pergunta, você poderá executar sua instalação gráfica efetuando login como usuário comum, pressionando ALT-F2e entrando gksu. Na caixa de diálogo resultante, basta digitar o comando que inicia o instalador.


0

A raiz não é recomendada para tarefas diárias. Como ele fornece pré-privilégios de superusuário, pode ser mal utilizado. Portanto, não há opção para root no login.


0

Você deve sempre fazer logon como você mesmo e, em seguida, sudo para executar ações como root. O Ubuntu está configurado para permitir a você todo o acesso necessário por padrão. Pequenas alterações cuidam do resto (como adicionar o seu usado a outros grupos). É considerado uma prática ruim fazer login como root. A melhor prática do setor é o padrão configurado aqui.

Alguém capaz de efetuar login como root pode ser uma coisa muito ruim do ponto de vista da segurança.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.