Eu instalei o Ubuntu usando a GUI, me dando uma senha e tudo. Não me lembro intricadamente do processo. No entanto, o que me preocupa é que não conheço a seguinte senha:
$ su
Password: <the only password I've ever created on this machine>
su: Authentication failure
Eu simplesmente não sei o que fazer. Não estou com problemas, mas só quero saber o que está acontecendo aqui. Também posso me bloquear nos diretórios:
starkers@ubuntu:~/Desktop$ mkdir foobs
starkers@ubuntu:~/Desktop$ sudo chmod 777 -R foobs
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
[sudo] password for starkers: <the only password I've ever created on this machine>
starkers@ubuntu:~/Desktop$ cd foobs
bash: cd: foobs: Permission denied
Estou um pouco confuso. Como posso me trancar assim? Eu acho que sudo
é o comando principal aqui. Mas estou tornando o foobs
arquivo o mais aberto possível chmod
, por que ele me bloqueia?
chmod -R 777 whatever
, a menos que queira causar um enorme risco à segurança.666
?chmod
pois está apenas alterando os arquivos que você pretendia./var/lib/sudo
está definido como gravável no mundo. Isso não deveria estar acontecendo e você deve tentar descobrir por que isso aconteceu.Respostas:
Por padrão, a
root
conta superuser ( ) está desabilitada e não possui senha. Você pode criar um executando:Você poderá fazer login como root executando
su
esta senha.Quanto
chmod
ao comando correto, seria:Você também pode usar:
para fazer login como root usando sua senha (sem criar uma senha root como descrito acima).
fonte
sudo su
. Isso também concede direitos permanentes ao terminal.sudo su
, pois ele vai estragar o ambiente e as coisas vão quebrar. em vez disso, usesudo -i
.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á usadasudo
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 executarapt-get dist-upgrade
como superusuário, você pode usar: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.
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 usandoexit
oulogout
. 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:
... e isso ainda pode ser feito sem nenhuma senha root, porque
sudo
concede privilégios de superusuário aosu
comando.E da mesma forma, em vez de
su -
usar um shell de login, você pode usarsudo su -
ou seu atalhosudo -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:
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 comosudo 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:
Ao manipular arquivos dentro do diretório inicial, nesse caso
~/Desktop
, não é necessário usá-losudo
. 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 exigirsudo
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.fonte
sudo -i
maissudo su
.sudo -i
(ousudo su -
) não são universalmente melhores, mas apenas diferentes - iniciam um shell de login que simula um ambiente de login de usuário raiz, que executa, por exemplo, o.profile
arquivo ou.login
arquivo do usuário raiz. Isso é melhor se você quiser que o ambiente no shell seja mais como um shell de login raiz do que um shell interativo que ocorre com privilégios de superusuário. Provavelmente é melhor usar os shells baseados em login se estiver usando um shell, mas isso é discutível: o ponto da resposta é que o Ubuntu foi projetado principalmentesudo
para executar comandos com privilégios de superusuário.