Permissão negada em ~ mesmo que o proprietário esteja listado como eu

13

De alguma forma, eu consegui chmod e chown meu ~ no esquecimento.

Quando tento fazer login através do shell, recebo

bash: ~/.bashrc : Permission denied

Mesmo depois ( como root ) eu corri

chown -hR nroach44 /home/nroach44

e

chmod -R 666 /home/nroach44

ou ( como nroach44 )

chmod -R 644 /home/nroach44

Nenhum desses comandos retorna erros.

Além disso:

ls -la /home/nroach44

Retorna muitos

drw-rw-rw-  1 nroach44 nroach44 4096 --date-- ti:me foldername

Qualquer ajuda?

NRoach44
fonte
Obrigado a todos! Algum guia para quais arquivos precisam de quais permissões na pasta inicial agora? :)
NRoach44
/homedeve ser drwxrwxr-xe root:roote /home/user rw rw -- or r-dependendo se você quiser que outros usuários ler seus arquivos de usuários. Diretórios e arquivos executáveis ​​com x. O mesmo userdiretório interno não será um problema se você tiver o grupo = usuário (nroach44: nroach44) como você parece ter (eu daria apenas 0 (---) permissões aos outros).
laurent

Respostas:

14
chmod -R 666 /home/nroach44

ou

chmod -R 644 /home/nroach44

Isso tornará todos os arquivos em seu diretório pessoal não executáveis. Não foi uma boa ideia;)

Não sei como limpar essa bagunça, como uma solução rápida que você pode tentar fazer como root:

chmod -R 755 /home/nroach44

Este comando dará permissões de execução a todos os arquivos na sua pasta pessoal. Deve resolver seus problemas imediatos, mas pode ser um pesadelo de segurança.

A melhor solução é abrir outra conta de usuário e transferir para ela arquivos e configurações, um por um.

Javier Rivera
fonte
6
Eu não sabia que os diretórios precisavam de permissões x para abrir. Obrigado!
precisa saber é o seguinte
5

Os diretórios precisam ter o bit de execução definido para permitir que você desça no diretório. Plain 666está errado, mesmo se você estiver executando como root. Dá a todos permissão de gravação.

Para tornar os arquivos mais seguros, execute:

chmod -R 640 /home/nroach44

Para tornar as pastas descendentes novamente, execute:

find /home/nroach44 -type d -exec chmod 750 \;

Nota: Eu escolhi o xx0 porque alguns arquivos podem ser sensíveis e não podem ser lidos por outros. Apenas para salvar, remova as permissões de leitura / gravação / execução para o mundo.

Lekensteyn
fonte
Eu só estava 666'ing para testar se ele iria trabalhar ou não :)
NRoach44
4

Como você parece ter permissões suficientes em ~, é necessário /hometer permissão x para outras pessoas ( sudo chmod +rx /home) e verificar se as permissões estão corretas no /home/nroach44/.bashrcarquivo.

Outro ponto, os diretórios devem ter x permissões para permitir a inserção neles, para corrigi-los, você precisa executar sudo chmod -R +X /home/nroach44.

Laurent
fonte
Saber que eram necessárias permissões de execução para inserir pastas, seria bom saber antes, então obrigado!
precisa saber é o seguinte
Eu não conhecia o capital X+1
Lekensteyn
capital Xé muito útil e fiquei muito feliz em descobri-lo também ... depois de muito tempo usando o find !!
laurent
1

Isso ocorre porque você alterou as permissões de todos os arquivos na sua pasta HOME. Por favor, tenha muito cuidado ao jogar com permissões de arquivo, use chmod e chown com muito cuidado ou você pode acabar com uma bagunça.

bash: ~/.bashrc : Permission denied

Eu acho que você alterou as permissões de todos os arquivos em seu diretório pessoal, então a permissão do bashrc também foi alterada.

As permissões padrão do script ~ / .bashrc são

-rw-r--r-- 1 user1 user1  3353 2012-01-09 12:05 .bashrc

Para explicá-lo, você deve ter permissões de leitura e gravação no arquivo, outros usuários do grupo de usuários devem poder lê-lo e todos os outros também podem lê-lo.

Então agora mude as permissões do script bashrc usando chmod para 644

chmod 644 ~/.bashrc

se os comandos acima derem permissão negada. então

executar o chown primeiro como sudo

sudo chown user1:usergrp ~/.bashrc

substitua user1 pelo seu nome de usuário e usergrp pelo seu grupo de usuários padrão.

Agora novamente faça

chmod 644 ~/.bashrc

agora você terá permissões para o script basrc, agora tente fazer login e verifique se há outros erros :)

Rajesh Pantula
fonte
0

Os diretórios precisam de um conjunto de bits x (para o diretório em que esse bit é visto como bit de pesquisa) para abrir. Então eu uso o tree para obter apenas o conjunto de pastas e evitar o pesadelo de ter todos os arquivos definidos como executáveis ​​(a opção para o tree é -d List directories only.):

sudo tree -faid /home/nroach44 | xargs -L1 -I{} sudo chmod 755  "{}"

Atenção!!! você deve levar isso em consideração:

  • o uso de chmod ou chown recursivo no /diretório raiz ou nos diretórios do sistema destruirá o seu sistema operacional (na verdade, qualquer coisa recursiva no /diretório ou nos diretórios do sistema é perigosa)

  • essa não é uma boa prática de segurança para definir permissões em massa assim

Eduard Florinescu
fonte