O que aconteceria
Se você configurar seu sistema para que nenhum usuário seja administrador, ninguém poderá executar tarefas administrativas como root
com sudo
(ou suas interfaces gráficas, como gksu
, gksudo
e kdesudo
) ou PolicyKit . Supondo que a conta root
permaneça desabilitada, você não poderá efetuar login como root
(mesmo em um console virtual) ou su
-to- root
. Bloqueio de possíveis vulnerabilidades de segurança, isso impediria que qualquer pessoa executasse tarefas administrativas no sistema em execução.
Corrigindo o problema
No entanto, se você fez isso, o problema ainda será facilmente corrigido , supondo que você tenha acesso físico à máquina. Corrigir esse problema é semelhante a redefinir uma senha esquecida, exceto que você adiciona o usuário aos grupos sudo
e / ou admin
com usermod
, em vez de redefinir sua senha com passwd
.
Aqui está um método:
-
Inicialize no modo de recuperação segurando Shift enquanto inicializa e seleciona. Selecione a opção para um shell
root
. Você receberá um shell com um prompt#
(em vez do usual$
). Isso significa que é umroot
shell. Qualquer comando executado aqui é executado comoroot
. -
Se você souber seu nome de usuário, pule esta etapa. Para descobrir seu nome de usuário, execute
ls /home
. Essa é uma maneira bastante confiável de listar os nomes de usuário dos usuários humanos de seu sistema (omitindo contas de usuário comowww-data
enobody
, que são usadas internamente, mas não representam pessoas reais). -
Execute esses comandos para adicionar
username
ao (s) grupo (s) necessário (s) para ser um administrador. (Substituausername
pelo nome de usuário real.)usermod -a -G sudo username usermod -a -G admin username
Isso tenta adicionar separadamente o usuário aos grupos
sudo
eadmin
. Nos lançamentos do Ubuntu até o Ubuntu 11.10, os administradores estavam no grupoadmin
. No Ubuntu 12.04 (e em versões futuras), os administradores estão no gruposudo
; se um sistema 12.04 foi atualizado de uma versão anterior, os dois grupos existirão.Assim, você pode colocar o usuário em apenas um, se souber qual deles, ou simplesmente executar esses dois comandos e colocá-los no que houver. Eu aconselho fazer isso com dois comandos para que, se um grupo não existir, o erro não pare
usermod
de tentar adicionar o usuário ao outro grupo.
O modo de recuperação é geralmente acessível. Mas, ocasionalmente, ela pode estar quebrada, desabilitada ou exigir uma senha; nesse caso, você pode inicializar a partir de um CD ativo, chroot
no sistema instalado e executar os comandos usermod
. Aqui está um procedimento para fazer isso, adaptado de minha resposta consideravelmente mais geral aqui :
-
Se você ainda não tiver um, grave um CD / DVD ao vivo do Ubuntu (em Ubuntu , Windows ou Mac OS X ) ou escreva uma unidade flash USB ao vivo do Ubuntu (em Windows ou Mac OS X ).
-
No seu sistema Ubuntu (não no sistema live CD / DVD / USB), execute o seguinte comando no Terminal ( Ctrl + Alt + T ). Você não precisa ser um administrador para fazer isso.
mount | grep ' on / '
Você deve incluir os espaços antes de
on
e depois de/
. -
Esse comando produz algo como
/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)
como a saída. O texto antes deon
(não incluindo o espaço) é o nome do dispositivo da partição que contém o sistema de arquivos raiz do seu sistema Ubuntu. Lembre-se (ou anote). -
Inicialize o computador a partir do CD / DVD / USB ativo e selecione
Try Ubuntu without installing
(nãoInstall Ubuntu
). -
Execute esses comandos, substituindo
/dev/sda1
pelo nome do dispositivo da partição que contém o sistema de arquivos raiz do sistema Ubuntu, se diferente (eusername
com o nome de a conta de usuário que você deseja dar habilidades administrativas).sudo mount /dev/sda1 /mnt sudo chroot /mnt usermod -a -G sudo username usermod -a -G admin username exit sudo umount /mnt
Como com o outro método, você pode usar
ls /home
(execute este após o comandochroot
) para ver uma lista de usuários na máquina, se você não souber o nome de usuário .
Alternativas para eliminar administradores
No Ubuntu, quando você é um administrador, ainda precisa se autenticar com sudo
ou PolicyKit para executar ações como root
. Isso é considerado pelo menos tão seguro quanto usar su
para executar ações como root, pois qualquer pessoa que possa comprometer sua conta de maneira a ler sua própria senha (por sudo
) também pode ler root
's senha (para su
). Além disso, há algumas vantagens substanciais ( explicadas aqui ) de sudo
over su
e a ativação do root
conta, apesar de bastante possível, não é recomendada nem oficialmente suportada no Ubuntu.
Se você decidir que, embora sudo
e PolicyKit exijam sua senha para executar ações como root
, você mesmo deseja que você e todos os outros usuários humanos em sua máquina sejam executados como usuário padrão (e não como um administrador que pode executar comandos como root
), você tem duas opções fáceis:
-
Você pode ativar a conta
root
, mas isso não é recomendado, conforme explicado acima. Além disso, por padrão, você não poderá efetuar login em uma sessão gráfica comoroot
, e você não deve configurar seu sistema para permitir isso , pois é particularmente perigoso para executar todo um ambiente gráfico de desktop comoroot
(um bug de segurança em qualquer parte dele poderia comprometer seu sistema). Além disso, a maioria dos programas GUI não são testados comoroot
, portanto, pode haver bugs substanciais de usabilidade. Se você habilitarroot
, você deve sempre fazer logon como root em um console virtual (ou usesu
). -
A melhor opção é criar apenas outra conta de usuário para fins administrativos. Torne essa conta um administrador. Ter uma conta que não seja
root
e possa executar tarefas administrativas comsudo
e PolicyKit não forçará você a usar essa conta para tarefas diárias não administrativas.
No entanto, a maioria dos usuários é melhor com o padrão - em que pelo menos uma conta de usuário é um administrador e pode executar tarefas administrativas, mas deve (re) inserir sua senha para fazer isso.