Acidentalmente tirou privilégios de execução da minha / home

2

Depois, não consegui executar nenhum comando sem receber um erro de 'permissão negada'.

Ao reiniciar o computador, quando eu inserir minha senha, o Ubuntu parecerá estar carregando por um segundo, mas retornará ao prompt de senha várias vezes.

O que eu fiz:

  1. Digitar a raiz digitando sudo -i
  2. Inseriu minha senha
  3. Eu estava tentando editar as permissões na minha pasta / home, mas acho que mudei o diretório errado. Eu fiz um chmod -R -x e agora meu / home não tem permissões de execução.
  4. Digitado su tom
  5. Não foi possível executar comandos ou fazer login.

Quando tentei digitar até mesmo o comando mais simples, como cd , recebi uma permissão de erro negado.

Não consigo fazer login no meu usuário do Tom, por isso estou em uma conta de convidado e não tenho acesso ao sudo. Quando tento cd /home , obtenho o erro bash: cd: / home: Permissão negada

    
por tfmertz 05.04.2015 / 02:05

3 respostas

4

Como bodhi.zazen diz , você deve inicializar para o modo de recuperação e altere as permissões de volta. O modo de recuperação ainda deve funcionar bem - é improvável que essa alteração o torne inutilizável - mas, se por algum motivo você não puder usar o modo de recuperação, poderá usar um CD / DVD / USB ativo.

Mantenha pressionada a tecla shift durante o boot para que o menu GRUB seja exibido. Selecione Opções avançadas para o Ubuntu e, em seguida, selecione a primeira entrada cujo nome termine em (modo de recuperação) . Em seguida, no menu de recuperação, selecione a opção rotulada:

root              Drop to root shell prompt

Isso deve fornecer um prompt do shell de raiz # . Remontar seu / filesystem readwrite executando:

mount -o remount,rw /

(Observe que você não precisa de sudo para isso - nem para os comandos chmod abaixo - porque você já está em um shell raiz, fornecido a você pelo modo de recuperação).

Supondo que as únicas alterações que você fez foram executar permissões, basta executar:

chmod a+x /home
chmod -R u+X /home/tom

+X define permissões de execução especificamente quando um arquivo já é executável por algum usuário ou um diretório (veja man chmod para detalhes; observe que capital +X é diferente de +x , que sempre define permissões de execução). Nos diretórios, as permissões de execução conferem a capacidade de entrar no diretório. Perder essa capacidade parece ser o que tem efetivamente bloqueou sua conta.

  • Já que você apenas tirou as permissões executáveis, não há nenhuma necessidade de andar na hierarquia de diretórios com um find comando e identifica cada arquivo por tipo para alterar suas permissões . Executar chmod recursivamente com +X tornará todos os diretórios "executáveis" (isto é, editáveis) pelo proprietário novamente, o que é exatamente o que você precisa aqui. (Não há nada realmente errado com um método find -based, como o apresentado na resposta de tfmertz - de qualquer forma irá funcionar bem por si só. E se você fez as duas coisas, tudo bem também.)

Em seguida, inicialize normalmente, seja executando reboot ou executando exit (o que o leva de volta ao menu de recuperação) e selecionando a opção currículo .

Esses comandos chmod não necessariamente retornam as coisas para exatamente o que eram antes - para isso, provavelmente seria necessário ver qual comando você executou (mas você pode ser capaz de para descobrir isso executando history depois de fazer login novamente). No entanto, isso provavelmente será suficiente para permitir que você faça login e use seu sistema Ubuntu normalmente novamente.

Esta situação e a solução são semelhantes à situação mais comum em que o único administrador de um sistema perdeu sua senha. Assim, enquanto você está alterando permissões ao invés de uma senha e a solução não é exatamente a mesma, você pode achar útil dar uma olhada em esta outra questão ) sobre como acessar seu sistema a partir de um live CD / DVD / USB deve ajudar.

    
por Eliah Kagan 05.04.2015 / 04:20
1

A pasta / home precisa ter sua permissão de execução restaurada

  1. Reinicie o Ubuntu
  2. Execute o modo de recuperação na raiz ( Modo de recuperação )
  3. Execute os comandos find para restaurar as permissões

Redefinir / permissões de casa

Execute os dois comandos abaixo encontrados em z9.io

  

Para diretórios, faça isso

     

find . -type d -exec chmod 775 {} \;

     

Para arquivos, apenas faça isso.

     

find . -type f -exec chmod 664 {} \;

Reinicie o Ubuntu no modo normal e tente efetuar login.

    
por tfmertz 05.04.2015 / 04:12
0

Mais do que uma resposta é apenas um comentário sobre esse mesmo problema que aconteceu comigo alguns minutos atrás (26 de janeiro de 2016) onde eu estava concluindo um laboratório e inseri um comando chmod 600 ~, então perdi o acesso ao meu em casa, então cheguei a este artigo, e primeiro tentei os comandos find e o terminal começou a ler tudo, mas tudo terminou em um resultado de permissão negada. Eu fui em frente e tentei o: chmod a + x / home chmod -R u + X / home / myname

e isso resolveu imediatamente. Eu pude começar a entrar no cd novamente.

    
por Ken Sandoval 27.01.2016 / 06:54