Se eu criasse uma conta de usuário no Ubuntu chamada root
, ela teria permissões de root automaticamente? Quebrar o sistema? Causar uma falha na matriz? O que aconteceria?
permissions
root
users
O rei esquecido
fonte
fonte
Respostas:
Os nomes de usuário devem ser exclusivos, portanto, como mencionado na resposta de Owen Hines , você não poderá criar esse usuário. No entanto, o ponto principal aqui é que os poderes de superusuário (todas as permissões possíveis) não são concedidos pelo nome de usuário
root
, mas pelo UID.O usuário com UID 0 é o superusuário.
Portanto, se o usuário com UID 0 tiver um nome diferente e você criar um usuário chamado
root
, ele não terá nenhum status especial.Remeto-o para o wiki da tag raiz !
fonte
root
. Não é uma ótima idéia, mas é possível. Assim, pode-se, por exemplo, criar uma conta de superusuário chamadagod
com uid0
e um usuário normal chamadoroot
com uma uid de1000
ou algum outro número.Não deixaria você, porque já haveria um
root
usuário.Mas, como Florian Diesch disse nos comentários:
fonte
chown root file
?Primeiro, como, como já indicado, você altera o usuário com o UID 0 para outra coisa. Em seguida, você pode criar um usuário normal com o nome de raiz e um UID maior que 1000. Ele funcionará "bem". Todas as permissões e funções principais do sistema usam UID e não o nome do usuário. De fato, este é um bom primeiro passo para fortalecer um sistema Linux. (muito melhor desativar o root, mas antes do sudo costumávamos fazer isso).
Agora, o que vai acontecer.
Na maioria das vezes nada. Todas as chamadas do sistema relacionadas à autorização ou autenticação usam UID (que eu conheço). E tem sido assim há algum tempo. Seu sistema continuará funcionando normalmente. As ferramentas do sistema refletirão o novo nome de usuário, mas continuarão funcionando normalmente. Em outras palavras, "enraíza" na convenção e não é imutável.
Dito isto, tenho certeza de que existem algumas ferramentas e programas mal escritos. Programas que verificam a variável de ambiente $ USER podem agir incorretamente. Geralmente, esses são scripts e pequenos projetos, mas você pode passar algum tempo rastreando aquele commit incorreto, 6 anos atrás, no fdisk, que continua causando dor de cabeça.
Isso é algo que eu costumava fazer o tempo todo. Foi um passo fácil e está sob a regra de "nomes de usuário não previsíveis". Existem MUITO melhores maneiras de alcançar os mesmos objetivos hoje.
fonte
Como outros explicaram, é o UID = 0 que dá ao usuário "superpotências", e não o nome do usuário "root". Portanto, se você de alguma forma conseguiu criar outro usuário chamado "root" (após renomear / excluir o original) - o super status do usuário dependeria do UID que você forneceu.
O que também leva a outra idéia interessante: é totalmente possível ter vários usuários com o mesmo UID (o que os torna essencialmente o mesmo usuário do ponto de permissões do sistema de arquivos, mas permite ter diferentes diretórios de shell e home). De fato, alguns sistemas do tipo UNIX possuem outra conta de superusuário chamada toor (root backwards), que permite ter duas contas de superusuário com configurações diferentes.
fonte
Como criar o segundo 'root':
Sim, em teoria, não deve haver dois usuários com o mesmo nome de usuário ou os mesmos IDs. E os utilitários padrão são infalíveis e não criarão esses usuários para você. Mas você sempre pode editar o arquivo / etc / passwd manualmente.
Por exemplo, eu fiz:
Como você vê, nós somos raiz agora! Sim, isso não é raiz real (não uid = 0), mas são as mesmas quatro letras. Impressionante e inútil.
Como criar uma segunda 'raiz' melhor:
Além disso, você pode fazer outras modificações. Deixe o nome de usuário como está (seu nome ou root2), mas altere o uid.
(veja, os campos UID e GID são zeros) Agora você tem um usuário comum (não raiz), com nome de usuário quase não suspeito (ou faça o nome de usuário 'johndoe' para obter um efeito melhor), mas, na verdade, esse usuário tem superpoderes!
Como você vê, o usuário comum não pode usar o fdisk em / dev / sda, mas o root2 pode fazer qualquer coisa!
Esse truque simples, às vezes usado após o sistema ser hackeado, para fornecer backdoor. Mesmo que o root real mude suas chaves / senhas, o hacker ainda terá controle total sobre o sistema através de outro usuário com uid = 0.
Como a matriz funciona
Na verdade, nem o nome de usuário 'root' nem o uid = 0 não são mágicos por si só. Isso é apenas uma questão de convenção. E nem sempre é verdade. (veja esta pergunta: A conta root sempre possui UID / GID 0? ) O código do kernel é mágico. Na verdade, o próprio código do espaço do usuário - não pode fazer nada que o root possa fazer. Mesmo que seja executado como root! O poder da raiz está no kernel. por exemplo, se você fizer "cat / etc / shadow" (somente o root normalmente pode fazer isso), o programa / bin / cat chama a função libc open () que ainda é o código do espaço do usuário, e essa função open () executa a chamada do sistema ao kernel. Então o próprio kernel decide o que fazer. Por exemplo, o kernel pode permitir alguma operação se o usuário efetivo tiver id == 0.
Em teoria, se você alterar algum código no kernel e manipular o usuário 'www-data' de maneira diferente - algumas operações podem ser permitidas apenas para o usuário 'www-data' (e nem mesmo para o root).
fonte
A maioria das ferramentas 'amigáveis' verificará isso e não permitirá que você crie uma conta com um nome de usuário que já esteja sendo usado.
Se você ignorar isso e adicionar manualmente uma segunda conta raiz ao seu / etc / passwd e / etc / shadow, qual será usada, acho que dependeria se você a colocasse antes ou depois da original. Como todas as contas de usuário em um sistema unix, ele também terá acesso de superusuário somente se seu UID for zero, independentemente do nome.
fonte