Existe uma senha de root no OS X e Ubuntu?

13

Quando você configura uma nova instalação do Ubuntu ou OS X, geralmente é criado um usuário para você. No OS X, é o nome de usuário que você escolher. No Ubuntu (a versão do servidor) geralmente o ubuntuusuário é criado.

Pelo que entendi, também há um usuário root, que você pode acessar por meio de algo como sudo su - root, e digitar a senha do ubuntuusuário que você criou, que faz parte do grupo de administradores. Depois de mudar para rootAcho que você pode usar o passwdcomando e alterar a senha do root.

Mas qual era roota senha antes disso? Isto existe? É uma sequência aleatória de números e letras? Como o sistema lida com isso?

cwd
fonte
1
No Ubuntu, você só precisa sudo su. A rootconta é assumida por padrão.
Nathan Osman
1
No Ubuntu, sué necessário apenas para alternar para algum usuário não root . Para executar um único comando como root, digite sudo command. Para obter um shell raiz, digite sudo -i.
Scott Severance
E se você disser a alguém nos fóruns do ubuntu como definir uma senha root ou inicializar e redefinir uma senha de usuário por meio de um livecd, sua conta poderá ficar banida por 30 dias ... pergunte-me como eu sei ... pessoas realmente não quero que você ter um conjunto senha de root, eles querem que você sempre use sudo
ivanivan

Respostas:

12

Só posso responder pelo Ubuntu.
No Ubuntu, o rootusuário possui uma senha bloqueada. Na passwdpágina do manual:

   -l, --lock
           Lock the password of the named account. This option disables a 
           password by changing it to a value which matches no possible 
           encrypted value (it adds a '!' at the beginning of the password).

Você pode ver o !in /etc/shadow.

Um usuário com uma conta bloqueada não pode alterar sua senha, mas o root pode, sem inserir previamente a senha antiga.

enzotib
fonte
10

Veja como desbloquear (?) Ou criar um usuário root real no OSX:

  1. Preferências do Sistema
  2. Usuários e Grupos
  3. Opções de login (clique em bloquear e autenticar aqui)
  4. Clique em "Participar" (NAS)
  5. Utilitário Open Directory
  6. Clique no cadeado (autenticar novamente)
  7. Menu Editar -> ativar usuário root
  8. (Menu Editar -> alterar senha root)

Desfrutar !

Yossi Farjoun
fonte
+1 para a boa descrição da GUI do Mac. Eu só conhecia a maneira da linha de comando de ativar a conta root.
Andrew J. Brehm
Sim, fiquei surpreso quando o gerente de atendimento ao cliente da Apple me guiou pelas etapas para fazer isso ... achei que era um segredo muito bom manter "escondido".
Yossi Farjoun 4/11/11
7

Como o enzotib disse, o Ubuntu tem uma conta root, mas está bloqueada por padrão.

Agora, sobre Macs:

Como você provavelmente pode imaginar, o root (junto com todas as contas daemon) não aparece na seção "Usuários e grupos" de Configurações.

Olhando para o meu Mac /etc/passwd, há uma entrada para root, junto com uma mensagem

Note that this file is consulted directly only when the system is running
in single-user mode.  At other times this information is provided by 
Open Directory.

Tentei encontrar a lista de usuários do Open Directory, sem sucesso, mas nas configurações havia menções de dar explicitamente permissões de root, mesmo que implícitas. Nunca fui solicitada uma senha de root ao configurar a máquina pela primeira vez, portanto, acho que a conta raiz está bloqueada como no ubuntu. Eu não (e realmente não quero) tentar dar uma senha ao root e fazer login com ela, mas você provavelmente poderia.

A linha da senha:

root:*:0:0:System Administrator:/var/root:/bin/sh

O comando perl do comentário de keith adiciona :0a ao final. Sem hash de senha. Também não há arquivo de sombra que eu possa encontrar, não consegui encontrá-lo em nenhum lugar para verificar se o root pode ter uma senha.

Kevin
fonte
Qual é a saída de perl -e 'print join(":", getpwuid(0)), "\n"'? ( NOTA : Se ele inclui algo que se parece com um hash de senha, não publicá-la aqui.)
Keith Thompson
@KeithThompson Publicou, nada de especial. Eu sei sobre o hash, mas agradeço por incluir o aviso para usuários que talvez não o façam.
Kevin
1
E o mesmo comando Perl com seu próprio uid? Isso mostra uma senha com hash? (Mais uma vez, obviamente, não publique o hash.)
Keith Thompson
1
Hmm. Talvez getpwuid()no MacOS faça isso deliberadamente, para evitar revelar informações confidenciais (embora seja necessário que haja algo que possa acessar a senha com hash).
Keith Thompson
1
Eu estive pesquisando online e parece que eles tinham uma sombra no último sistema operacional, mas não consigo encontrar um no leão.
Kevin
7

A senha root no Mac OS X é armazenada (como mencionado por Kevin) no Open Directory. Para confirmar a existência do usuário root, é necessário um grep simples:

$ grep ^root /etc/passwd 
root:*:0:0:System Administrator:/var/root:/bin/sh

Para ler as informações da senha raiz do Open Directory:

$ dscl localhost -read /Local/Default/Users/root Password
Password: *
$ dscl localhost -read /Local/Default/Users/root AuthenticationAuthority
No such key: AuthenticationAuthority

No caso padrão (como mostrado), o usuário root não possui um hash de senha definido (a conta está bloqueada). Você pode comparar essa configuração com o valor em OD para um usuário "normal":

$ dscl localhost -read /Local/Default/Users/normaluser Password
Password: ********
$ dscl localhost -read /Local/Default/Users/normaluser AuthenticationAuthority
AuthenticationAuthority: ;ShadowHash;HASHLIST:<SALTED-SHA512>...#rest of hash data
Mark Glossop
fonte
2

O Ubuntu configura uma senha para o usuário nomeado e a usa para tarefas no nível de superusuário (raiz) como instalação e exclusão de software em todo o sistema e exclusão / execução de diretório e arquivo além do diretório inicial. Uma conta root está de fato instalada, mas sem uma senha atribuída um pouco oculta. Convenções de uso canônico e Ubuntu, com efeito, desencorajam você a invocá-lo diretamente.

Ele configura uma conta de usuário nomeada em vez de configurar uma conta genérica "ubuntu". Esse é pelo menos o caso dos sistemas instalados. Talvez tenha uma conta genérica do "ubuntu" se você usar um CD ao vivo, não me lembro, não trabalhei com um CD ao vivo há alguns anos.

O comportamento no MacOsX é realmente bastante semelhante. Você é solicitado a definir uma senha, que é invocada cada vez que você tenta executar tarefas no nível de superusuário, como instalar ou atualizar o software, mas não há uma conta chamada "root".

haziz
fonte
3
Eu acredito que há de fato um "usuário" raiz. Você pode sufazer o root, o root possui um diretório inicial e os arquivos podem pertencer ao root. Você pode citar seu argumento de que não há uma conta root?
Cwd
3
Certamente, há uma conta raiz explícita (uid 0, nome "root"). Tem que haver em qualquer sistema semelhante ao Unix. Ele simplesmente não tem uma senha (pelo menos por padrão). Você pode até obter um shell raiz: sudo bash -le digite whoami. (Mas normalmente você deve usar sudopara comandos individuais em vez de ter um shell interativo executado como root.)
Keith Thompson
Você talvez esteja correto, não estou lhe questionando. Se houver uma conta root, eles fizeram um bom trabalho ocultando-a. Eu também uso o Fedora em algumas de minhas máquinas e VMs, e o root é uma conta muito ativa.
haziz
1

Para o Ubuntu: por padrão, você pode acessar sua conta de usuário recém-criada.

Para executar qualquer comando como root, você pode usar

sudo command

depois digite sua senha normal.

A conta raiz está bloqueada por padrão. Para ativar o root por linha de comando, basta digitar

sudo passwd

em seguida, digite a senha do usuário conectado e, em seguida, novas senhas para raiz. Agora você pode fazer login como root usando su e, em seguida, digite a senha do root.

kushdilip
fonte