1. Por que você não tem uma senha root
Embora você possa criar uma senha para a conta de superusuário que permita efetuar login como root su
, vale ressaltar que essa não é a maneira usual de fazer as coisas com o Ubuntu (ou cada vez mais outras distribuições também). O Ubuntu optou por não fornecer um login e senha root por padrão por um motivo. Em vez disso, uma instalação padrão do Ubuntu será usada sudo
para fornecer privilégios 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 pessoa com permissão "sudo" completa pode executar algo "como superusuário", aguardando sudo
seu comando. Por exemplo, para executar apt-get dist-upgrade
como superusuário, você pode usar:
sudo apt-get dist-upgrade
Você verá esse uso do sudo praticamente em qualquer lugar em que ler 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 root, pois eles usam sua própria senha. Se você tiver vários usuários, poderá revogar o acesso de superusuário apenas removendo sua permissão sudo, sem precisar alterar a senha root e notificar a todos sobre uma nova senha. Você pode até escolher quais comandos um usuário pode executar usando o 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ê fica permanentemente em um shell de superusuário que deve ser encerrado usando exit
ou logout
. Isso pode levar as pessoas a permanecer no shell do superusuário por mais tempo do que o necessário, apenas porque é mais conveniente do que fazer logoff e logon 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 nenhuma senha root, porque sudo
concede privilégios de superusuário ao su
comando.
E da mesma forma, em vez de su -
usar um shell de login, você pode usar sudo su -
ou seu atalho sudo -i
.
No entanto, ao fazer isso, você só precisa estar ciente de que está agindo como um superusuário para cada comando. É um bom princípio de segurança não permanecer 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 o usuário possui).
Apenas 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ê desejar 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
.
Primeiro, o seguinte aviso indica um problema de segurança potencialmente sério na sua máquina:
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
Isso significa que, em algum momento, você decidiu /var/lib/sudo
ser gravável no mundo. Eu imagino que você tenha feito isso em algum momento 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 este seja o único arquivo importante do sistema cujas permissões foram alteradas para serem graváveis no mundo. Essencialmente, agora você tem um sistema facilmente hackável 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 dentro do diretório inicial, nesse caso ~/Desktop
, não é necessário usá-lo sudo
. Todos os arquivos que você cria no diretório inicial devem ser modificáveis por você de qualquer maneira (e, caso contrário, 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 fazê-lo recursivamente ou em um grande número de arquivos. Nesse caso, você está alterando cuidadosamente as permissões de arquivo para poderem ser gravadas no mundo. Qualquer outro usuário, ou qualquer software de servidor com erros na máquina, pode ter acesso fácil para substituir todos esses arquivos e diretórios.
É quase certo que chmod 777 -R [dir]
ele é não uma solução adequada para qualquer problema que você estava tentando resolver (e como eu mencionei acima, há evidências de que você tenha feito isso para arquivos de sistema em / var / lib também, e eu assumo a muitas outras lugares).
Algumas regras básicas básicas:
Se você estiver apenas mexendo com seus próprios arquivos no diretório pessoal, na área de trabalho, etc, nunca precisará usar sudo
nem direitos de superusuário. Se o fizer, é 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, como modificando sua configuração /etc
. Isso se aplica também à alteração das permissões de arquivo. Se um tutorial ou uma tentativa de corrigir o problema exigir sudo
direitos de superusuário, e não for simplesmente uma alteração na configuração do / etc /, é um sinal de aviso de que você está fazendo algo errado.
chmod -R 777 whatever
, a menos que queira causar um enorme risco à segurança.