1. Por que você não tem uma senha de root
Enquanto você pode criar uma senha para a conta de superusuário, permitindo que você efetue login como root com su
, vale a pena mencionar que essa não é a maneira "Ubuntu" de fazer as coisas. O Ubuntu escolheu especificamente não para fornecer um login e senha root por padrão por um motivo. Em vez disso, uma instalação padrão do Ubuntu usará sudo
.
O Sudo é uma alternativa para dar às pessoas uma senha de root para executar tarefas de superusuário. Em uma instalação padrão do Ubuntu, a pessoa que instalou o sistema operacional recebe permissão "sudo" por padrão.
Qualquer um com permissão "sudo" pode executar algo "como um superusuário" com sudo
pré-pendente em seu comando. Por exemplo, para executar apt-get dist-upgrade
como um superusuário, você poderia usar:
sudo apt-get dist-upgrade
Você verá esse uso do sudo praticamente em qualquer lugar em que você lê um tutorial sobre o Ubuntu na web. É uma alternativa para fazer isso.
su
apt-get dist-upgrade
exit
Com o sudo, você escolhe antecipadamente quais usuários têm acesso ao sudo. Não é necessário que eles se lembrem de uma senha de root, pois usam sua própria senha. Se você tiver vários usuários, poderá revogar o acesso do superusuário apenas removendo a permissão do sudo, sem precisar alterar a senha do root e notificar a todos sobre uma nova senha. Você pode até escolher quais comandos um usuário pode executar usando sudo e quais comandos são proibidos para esse usuário. E, por último, se houver uma violação de segurança, em alguns casos, poderá deixar uma trilha de auditoria melhor mostrando qual conta de usuário foi comprometida.
O Sudo facilita a execução de um único comando com privilégios de superusuário. Com su
, você cai permanentemente para um shell de superusuário que deve ser encerrado usando exit
ou logout
. Isso pode levar as pessoas a permanecerem no shell do superusuário por mais tempo do que o necessário, apenas porque é mais conveniente do que sair e entrar novamente mais tarde.
Com o sudo, você ainda tem a opção de abrir um shell de superusuário permanente (interativo) com o comando:
sudo su
... e isso ainda pode ser feito sem qualquer senha de root, porque sudo
dá privilégios de superusuário ao comando su
.
E, da mesma forma, em vez de su -
para um shell de login, você pode usar sudo su -
ou mesmo sudo -i
.
No entanto, ao fazer isso, você só precisa estar ciente de que está atuando como um superusuário para cada comando. É um bom princípio de segurança não ficar como superusuário por mais tempo do que o necessário, apenas para diminuir a possibilidade de causar acidentalmente algum dano ao sistema (sem ele, você só pode danificar os arquivos que seu usuário possui).
Só para esclarecer, você pode , se preferir, fornecer ao usuário root uma senha que permita logins como root, conforme descrito na resposta do @ Oli, se você quiser especificamente fazer as coisas dessa maneira. Eu só queria que você soubesse sobre a convenção do Ubuntu de preferir sudo
e que você saiba que existe uma alternativa.
2. Os problemas com o seu comando chmod 777 -R
Sua pergunta também tem uma segunda parte: seus problemas com o comando sudo chmod 777 -R foobs
.
Em primeiro lugar, o seguinte aviso indica um problema de segurança potencialmente sério em sua máquina:
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
Isso significa que, em algum momento, você definiu /var/lib/sudo
como mundialmente gravável. Eu imagino que você tenha feito isso em algum estágio usando um comando como sudo chmod 777 -R /
. Infelizmente, ao fazer isso, você provavelmente quebrou todas as permissões de arquivo em todo o sistema. É improvável que esse seja o único arquivo de sistema importante cujas permissões foram alteradas para serem graváveis pelo mundo. Essencialmente, você tem um sistema que pode ser facilmente hackeado agora, e a única maneira fácil de recuperá-lo seria reinstalar.
Em segundo lugar, o comando que você estava usando:
sudo chmod 777 -R foobs
Ao manipular arquivos em seu diretório inicial, nesse caso em ~/Desktop
, você não precisará usar sudo
. Todos os arquivos que você cria em seu diretório home devem ser modificáveis por você de qualquer maneira (e se não, algo engraçado está acontecendo).
Além disso, você precisa estar totalmente ciente das conseqüências de alterar as permissões de arquivo em massa, como fazer recursivamente ou em um grande número de arquivos. Nesse caso, você está alterando cuidadosamente as permissões de arquivo para serem graváveis por todos. Qualquer outro usuário, ou qualquer software de servidor defeituoso na máquina, pode ter acesso fácil para sobrescrever todos esses arquivos e diretórios.
É quase certo que chmod 777 -R [dir]
não é uma solução apropriada para qualquer problema que você estivesse tentando resolver (e como mencionei acima, há evidências de que você fez isso em arquivos de sistema / var / lib também, e eu assumo muitos outros lugares).
Algumas regras básicas:
-
Se você estiver apenas mexendo com seus próprios arquivos em seu diretório pessoal, área de trabalho, etc., nunca precisará usar sudo
ou direitos de superusuário. Se você fizer isso, é um sinal de aviso de que você está fazendo algo errado.
-
Você nunca deve modificar manualmente os arquivos do sistema pertencentes aos pacotes. Exceção: a menos que você esteja fazendo isso especificamente de maneiras documentadas por esses pacotes, modificando sua configuração em /etc
. Isso se aplica também à alteração de permissões de arquivo. Se um tutorial ou tentativa de corrigir o problema exigir sudo
ou direitos de superusuário, e não for simplesmente uma alteração em uma configuração em / etc /, é um sinal de aviso de que você está fazendo algo errado.