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 é umrootshell. 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-dataenobody, que são usadas internamente, mas não representam pessoas reais). -
Execute esses comandos para adicionar
usernameao (s) grupo (s) necessário (s) para ser um administrador. (Substituausernamepelo nome de usuário real.)usermod -a -G sudo username usermod -a -G admin usernameIsso tenta adicionar separadamente o usuário aos grupos
sudoeadmin. 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
usermodde 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
one 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/sda1pelo nome do dispositivo da partição que contém o sistema de arquivos raiz do sistema Ubuntu, se diferente (eusernamecom 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 /mntComo 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
roote possa executar tarefas administrativas comsudoe 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.