Como NÃO se tornar um usuário root? Os administradores são root?

38

Eu instalei o Ubuntu no meu PC. Para efetuar login, uso o nome de usuário e a senha que criei durante a instalação. Isso significa que eu sou um usuário root? Se sim, então como me tornar não-raiz? Parece que o usuário não-root é mais seguro que o usuário administrador.

    
por FirstName LastName 20.01.2013 / 02:48

5 respostas

72

Você é um administrador, mas não root . O usuário root pode fazer qualquer coisa. Os administradores podem executar ações como root , mas normalmente o que os administradores fazem não é feito por% código%. Dessa forma, você tem controle total sobre seu próprio sistema, mas somente quando você escolhe para usá-lo.

O Ubuntu pede sua senha quando você tenta fazer coisas como root , para ter certeza de que é realmente você.

Contas de usuários: humanos e, caso contrário,

Usuários humanos reais têm contas de usuário para representá-los. Você criou uma dessas contas quando instalou o Ubuntu. Mas nem todas as contas de usuários representam usuários humanos reais .

Os usuários humanos reais recebem recursos (e são negados) por meio de suas contas de usuário. Eles devem usar suas contas de usuário para usar o sistema; portanto, as habilidades e limitações de suas contas de usuário se aplicam a elas.

As contas de usuário também são usadas para codificar conjuntos de habilidades e limitações. Algumas contas de usuário - a maioria, na verdade, a menos que você tenha muitos usuários humanos da máquina - existem para que certos programas ou comandos possam ser executados com sua identidade, uma identidade com as habilidades e limitações certas para o trabalho.

Por exemplo, o usuário root existe para que, se você executar um servidor da Web, ele possua os dados que o servidor tornar acessíveis. Nenhum usuário humano real precisa ter poderes para fazer alterações desmarcadas nesses dados, e o servidor da Web não precisa ter poderes para executar qualquer ação desnecessária para servir a web. Conseqüentemente, os dados da web e o restante do sistema são mais seguros contra quebras acidentais ou intencionais, do que se o servidor web fosse executado por algum usuário humano que teria todos os poderes do servidor web (e cujos poderes o servidor web possuir).

A conta de usuário não humana mais importante

O superusuário , cujo nome de usuário é www-data , é uma conta de usuário não humana com uma combinação muito específica de habilidades e limitações: todas as habilidades e sem limitações .

root 's permitido para fazer qualquer coisa. Ainda existem coisas que root não pode fazer porque o sistema em si não pode executar ou fazer sentido fora delas. Portanto, root não pode eliminar um processo em sono ininterrupto ou tornam uma pedra muito pesada para se mover , mova-o .

Muitos processos importantes do sistema, como root , são executados como init e root são usados para executar tarefas administrativas.

Posso fazer login como root ?

É possível configurar a conta root para que seja possível fazer o login com uma senha, mas isso não está habilitado por padrão no Ubuntu. Em vez disso, você pode pensar em root como root , www-data , lp e outras contas não humanas. (Execute nobody ou cat /etc/passwd para ver todos eles.)

Usuários humanos fazem login com suas próprias contas de usuário e, se alguma tarefa for executada com outra conta de usuário, eles fazem com que essa tarefa seja executada com essa identidade , sem realmente ter logado como esse usuário.

É possível configurar os outros usuários não humanos, como getent passwd , para que um possa efetuar login como eles também. Isso é muito raro, embora, em alguns sistemas operacionais semelhantes ao Unix, é comum fazer login como www-data em um terminal . Os riscos de executar uma interface gráfica inteira como root , combinados com quantos programas gráficos não foram projetados para serem executados como root e podem não funcionar corretamente, significa que você nunca deve tentar obter um root -owned sessão de desktop .

Por favor note que enquanto logar como root está desabilitado por padrão no Ubuntu, existem maneiras de obter um root shell sem autenticar como root , o que produz um efeito similar: os mais comuns são root ou sudo -s , e técnicas similares . (Não se preocupe se você não souber o que são essas coisas.) Isso não está realmente efetuando login: no modo de recuperação, você se torna -i antes que qualquer login ocorra; com os métodos root , você está apenas executando um shell como root.

Administradores

No Ubuntu, os administradores são os usuários que podem fazer o que quiserem como sudo , quando escolherem fazê-lo .


Configurações do sistema & gt; Contas de usuário."Eliah Kagan" é um administrador, então ele pode fazer coisas como root , mas ele não é root .

Sou um administrador no meu sistema Ubuntu. Quando executo programas, normalmente eles são executados como root ("Eliah Kagan" é o nome completo que corresponde ao ek nome_do_usuário.)

Quando executo o AbiWord ou o LibreOffice, ele é executado como ek . Quando executo o Firefox, o Chromium, o Empathy ou o Pidgin, ele é executado como ek . Os programas executados para fornecer a interface da área de trabalho são executados como ek .

No entanto, sou um administrador, por isso, se precisar executar uma tarefa administrativa, posso fazê-lo.

sudo

Na linha de comando, usaria ordinariamente ek para execute um comando como sudo :

sudo command...

Isso me solicitará a senha my . (Não a root da senha; root não tem uma.)

  • Como sou administrador, posso executar ações como root . Na configuração padrão, devo inserir minha senha para fazer isso.
  • Usuários que não são administradores não podem executar ações como root , mesmo colocando sua senha. Os comandos root falharão se o usuário que os estiver executando não for um administrador.

Como os administradores são perfeitamente comuns exceto para executar ações como sudo , a execução de um comando que exige root privileges ainda falhará, exceto quando o comando for executado como root .


Captura de tela ilustrando a necessidade de usar root para executar tarefas administrativas. (Baseado em "Sandwich" por Randall Munroe .)

sudo, graficamente

Programas gráficos podem ser executados como sudo através de frontends gráficos para root , como sudo / gksu e gksudo . Por exemplo, para executar o GParted como kdesudo , eu poderia executar root . Então eu seria solicitado graficamente pela minha senha.

Como sou solicitado graficamente, não precisa ser um terminal. Esta é uma das maneiras pelas quais as ferramentas administrativas são executadas como gksudo gparted .

Polkit

Polkit (uma vez conhecido como PolicyKit) é outra maneira de os administradores faça coisas como root . Um programa acessa um serviço que executa a ação. Às vezes, a ação está executando um programa inteiro; às vezes a ação é mais limitada.

Atualmente, muitos utilitários gráficos de administração do sistema são configurados para usar o polkit por padrão, em vez de usar root .

Um exemplo de tal utilitário é o Centro de Software. Ele aproveita ao máximo o polkit, exigindo que o usuário insira sua senha somente quando deseja fazer algo que requer sudo privileges. (Isso também é possível com a autenticação baseada em root , mas é mais difícil e mais feio de realizar.)

No Centro de Software, posso encontrar e ler sobre um aplicativo; então eu pedi minha senha quando eu quero instalá-lo.

Como o polkit é diferente

Qualquer programa gráfico pode ser executado como sudo com root e outros gráficos gksudo frontends. (O programa pode não funcionar muito bem, dependendo se ele foi ou não usado como sudo . Mas o comando para iniciar o programa será executado como root .)

Embora o polkit seja agora mais comum do que root interfaces gráficas do GUI como o modo como os aplicativos no Ubuntu executam ações como sudo nos bastidores, o polki só executará um aplicativo gráfico como root se houver um arquivo de configuração permitindo e indicando quais ações podem ser realizadas .

Polkit, não graficamente

root é o comando usado para executar um programa com o polkit.

Como pkexec , sudo pode executar gráficos não-gráficos comandos. (E isso não requer um arquivo de configuração definindo os recursos do comando - ele simplesmente executa o comando como pkexec .)

pkexec command...

root solicita uma senha graficamente, mesmo que seja executado a partir de um Terminal (essa é uma das maneiras como seu comportamento é mais parecido com pkexec do que com a execução direta de gksudo ).

(Se não houver GUI - por exemplo, se você estiver logado de um console virtual ou somente texto sessão SSH , ou a GUI não está funcionando corretamente - então sudo degrada graciosamente e solicite sua senha na linha de comando.)

Após a autenticação ser realizada com sucesso, o comando é executado no terminal.

Executando Comandos como Outros Usuários Além de pkexec

root é especial porque faz tudo o que pode ser feito. Mas é uma conta de usuário como qualquer conta, e as formas de executar comandos como root com root (diretamente ou com uma interface gráfica) ou polkit podem ser modificadas ligeiramente para executar um comando como qualquer outro usuário:

sudo -u username command...
gksudo -u username command...
pkexec --user username command...

O que? Você acabou de digitar sudo primeiro? Como é essa segurança?!

A execução de comandos com sudo é como invocar infalibilidade papal .

Quando você executa um comando com sudo [invoca a infalibilidade papal] , Ubuntu [pessoal católico ] se esforça para ter certeza de que você é realmente [realmente o papa].

Sim, eu sei que a infalibilidade papal (mesmo quando normativa) é declarativa; o paralelo não é perfeito.

Tentar fazer algo como sudo com root (ou polkit) é um grande negócio - o Ubuntu não vai deixar passar esse slide como todas as outras vezes que você executa um programa.

Você é solicitado a fornecer sua senha. (Então, o que você fez é lembrado por um curto período de tempo, então você não precisa digitar sua senha constantemente enquanto administra seu sistema.)

Além de lembrá-lo de ser cuidadoso , isso protege contra dois cenários:

  • Alguém usa seu computador (ou dispositivo móvel), talvez sob o pretexto de verificar seu e-mail ou algum propósito inócuo semelhante. Aqui, ainda é possível que eles façam algum mal - por exemplo, podem modificar ou excluir seus documentos. No entanto, eles não podem administrar o sistema, pois não podem colocar sua senha.
  • Os programas que não devem administrar o sistema não podem fazê-lo, a menos que você digite sua senha. Por exemplo, se o seu navegador da Web estiver comprometido por um bug de segurança e executar um código mal-intencionado, ele ainda não poderá executar tarefas administrativas. Ele não pode criar e excluir usuários, modificar programas instalados como sudo (que inclui qualquer coisa instalada pelo gerenciador de pacotes, como o LibreOffice), ou alterar o sistema em um nível profundo.

Eu já ouvi falar de root . O que é isso? Posso usar isso?

su autentica como outro usuário e executa um comando (ou inicia um shell interativo). É possível limitar quem tem permissão para usar su , mas su autentica com a senha da conta alvo , não a senha do usuário em execução.

Por exemplo, su executa su username -c 'command...' como nome de usuário , assim como command... .

Mas quando você executa um comando como sudo -u username command... com username , insira sua senha . Quando você executa um comando como sudo com username , insira a senha su .

Como username realiza autenticação para o usuário de destino , com su você só pode executar comandos como usuários cujas contas estão ativadas .

A conta su (como root e www-data ) está desativada por padrão. Não há senha que funcione para efetuar login como nobody . Portanto, você não pode usar root para executar comandos como su .

Você pode usar root para executar comandos como outro usuário que pode efetuar login (o que geralmente inclui todas as contas de usuário em seu sistema que representam seres humanos).

Quando logado como convidado, você não pode usar su .

Combinando su e su

Alguém que não é administrador pode até usar sudo para executar su como administrador. (Tudo bem, porém, já que eles precisam da senha do administrador para executar comandos como o administrador.) Ou seja, um usuário limitado pode usar sudo para executar su para executar um comando como sudo . Isso pode parecer com:

su username -c 'sudo command...'

(Executando programas gráficos desta forma requer cuidados especiais .

Não seria root uma maneira mais segura de executar comandos como su ?

Provavelmente não.

E se um usuário não tiver permissão para agir como root ?

Torne-os um usuário limitado em vez de um administrador.

E se um programa executado como administrador tentar root to sudo ?

A menos que você tenha reconfigurado root para permitir que ele seja bem-sucedido sem uma senha, ele falhará.

Não é possível um programa que não deva ser executado como sudo piggyback em um comando root recente, portanto, nenhuma senha é necessária?

Isso dificilmente será bem-sucedido.Atualmente, a maioria dos sistemas operacionais (incluindo o Ubuntu) tem sudo configurado por padrão para que seus timestamps se apliquem apenas em um contexto específico.

Por exemplo, se eu executar sudo em uma guia Terminal e autenticar com êxito, sudo ... em outra guia (ou executado por um programa GUI não relacionado ou executado em um console virtual ou sessão SSH) continuará sendo solicitado para uma senha. Mesmo que seja executado imediatamente depois.

Um programa executado como usuário X não tem acesso à senha do usuário X?

Não.

Se um programa mal-intencionado puder ser executado como administrador, ele não poderá "ouvir" o que está sendo digitado quando o administrador autenticar com sudo ou polkit?

Potencialmente, sim. Mas então poderia "escutar" uma senha digitada em sudo .

Se eu disser a minha senha para alguém -

Não diga às pessoas sua senha.

E se alguém precisar saber minha senha para fazer algo em meu nome, mas eu não quiser permitir que ela administre o sistema?

O ideal é que eles tenham uma conta de usuário separada que permita que eles façam o que precisam fazer. Por exemplo, pode compartilhar arquivos entre contas, permitindo que vários usuários gravem neles, enquanto ainda nega o acesso a outros usuários.

No entanto, em uma situação em que uma pessoa menos confiável pode compartilhar sua conta, ela deve ser uma conta de usuário limitada. Você poderia criar uma conta separada para essa finalidade (o que faz sentido - se for uma conta para você e outra pessoa que você deseja ter recursos diferentes, deve ser uma conta diferente).

Então, o mais seguro seria não permitir que su e sudo fizessem as pessoas logar como su , manualmente?

Não, porque há sérias desvantagens associadas a permitir que as pessoas efetuem login como root . Sempre que possível, o menor número de ações possíveis deve ser realizado como root . Mesmo a maioria dos atos relacionados diretamente à administração de um sistema (por exemplo, verificando o que os usuários estão configurando e lendo registros) geralmente não exigem root privilégios.

Além disso, assim como potencialmente um programa mal-intencionado pode observar o que alguém digita quando executa root ou sudo ou criar um falso prompt de senha su / sudo , potencialmente um programa malicioso também pode criar uma tela de login falsa.

O que torna um usuário um administrador?

Membros do grupo.

No Ubuntu 12.04 e posterior, os administradores são membros do grupo chamado su .

No Ubuntu 11.10 e anteriores, os administradores são membros do grupo chamado sudo .

Quando um sistema Ubuntu antes de 12.04 é atualizado para 12.04 ou posterior, o grupo admin é mantido para compatibilidade com versões anteriores (e continua a conferir poder administrativo aos usuários), mas o grupo admin também é usado.

Contas de usuário limitadas

Posso usar uma conta de usuário limitada em vez de uma conta de administrador?

Se você gosta, claro. Crie uma conta de usuário limitada em Configurações do sistema & gt; Contas de usuário e faça login como esse usuário.

Posso fazer da minha conta de administrador uma conta de usuário limitada?

Sim, basta removê-lo dos grupos sudo e sudo (veja acima).

Mas você deve ter certeza de que há pelo menos uma outra conta de administrador, então você pode administrar o seu sistema. Se não houver, então você teria que inicializar no modo de recuperação ou em um live CD e fazer algum usuário um administrador novamente . (Este é semelhante a < um href="https://sobrelinux.info/questions/1506/how-do-i-reset-a-lost-administrative-password"> redefinindo uma senha de administrador perdida .

Ferramentas gráficas para administrar usuários e grupos geralmente evitam que você crie um sistema sem administradores, ou pelo menos o avise. Ferramentas de linha de comando normalmente não (confiando que você sabe o que está fazendo).

    
por Eliah Kagan 20.01.2013 / 08:24
4

Não existe uma pergunta idiota;)

Espero que isso esclareça um pouco as coisas:

No Ubuntu, dois tipos diferentes de contas de usuário podem ser feitas: contas padrão e administrador . A diferença entre os dois: uma conta padrão não tem permissão para fazer alterações importantes em seu sistema, obtendo acesso root, enquanto uma conta de administrador pode usar sua senha para fazer alterações como o usuário root. O próprio usuário Root é um dos muitos usuários que o sistema criou e que você normalmente não vê ou percebe, e você não pode fazer login como ele (por padrão, de qualquer maneira). Se você está logado em uma conta do tipo administrador, você pode se tornar este usuário Root com o comando sudo em um terminal, e você pode digitar sua senha para instalar o software, fazer alterações no sistema, etc. logado como usuário padrão, você não pode fazer nada disso.

    
por Richard 20.01.2013 / 04:55
3

Em todos os sistemas Linux Para fazer qualquer alteração no sistema, precisamos ser autenticados como usuário root e, para aplicar todas as alterações, precisamos ser usuário raiz.

Os usuários normais não podem aplicar as alterações no sistema. Essa é a vantagem do Linux em comparação com as janelas.

Se qualquer ataque feito então ocorrerá apenas nessa área no sistema Linux / Unix porque para atacar ou modificar áreas restantes Ele precisa de permissões de root, mas no Windows se um lugar for atacado significa que todo o sistema será afetado. / p>

É por isso que apenas em muitas perguntas, se algum usuário fez nenhum pedido de senha root, nós o avisaremos, pois isso não é recomendado em circunstâncias de segurança e deixamos a opção de escolha para eles.

Se você quiser se transformar em um usuário root, o sudo pode ajudá-lo.

sudo -i 

Se você quiser iniciar o aplicativo como usuário root, poderá sudo.

sudo <app_name>

É sempre melhor executar o sistema como usuário não raiz.

    
por Ten-Coin 20.01.2013 / 04:44
3

A conta criada durante a instalação é uma conta de administrador .

No Ubuntu, a conta root não tem senha e, como consequência, você não pode efetuar login como o usuário root . Existem maneiras de contornar isso, mas essa é a configuração padrão.

Uma conta de administrador no Ubuntu significa que o usuário é adicionado ao grupo sudo , o que torna a conta elegível para ganhar previleges temporariamente usando o comando sudo . O PolicyKit pode solicitar o escalonamento de privilégios solicitando a senha do 'Administrador'. (Você precisa selecionar um usuário administrador e fornecer a senha dessa conta.)

Para confirmar se são verdadeiros:

  • Abra um terminal e tente atualizar o índice do pacote de software. apt-get update é o comando usado para fazer isso e isso requer que seja executado como root. Ele funciona somente quando você faz login como root ou o executa como root usando escalações de privilégios. Um administrador pode executar sudo apt-get update autenticando no mecanismo sudo , que permite que os comandos sejam executados como qualquer usuário. Um usuário padrão não poderá fazer isso.

  • Abra as contas de usuário nas configurações do sistema e tente adicionar um novo usuário. O mecanismo de proteção usado lá é o PolicyKit. Os administradores poderão autenticar e escalar privilégios, mas os usuários padrão serão bloqueados. Requer uma senha de 'administrador' para prosseguir.

Veja como você verifica se sua conta é administradora ou não:

  • Abra as contas de usuário nas configurações do sistema.
  • Selecione sua conta de usuário na coluna da esquerda.
  • Você deve ver Administrator no nome da conta em ambos os painéis para contas de administrador e Standard para usuários normais.
por Mahesh 20.01.2013 / 08:39
2

Não.

o usuário com o qual você faz login no Ubuntu não é o usuário administrador (o usuário administrador na terminologia do Linux é chamado de root)

    
por tomodachi 20.01.2013 / 03:01