web-dev-qa-db-fra.com

Permission refusée sur ~ même si le propriétaire est indiqué comme moi

D'une manière ou d'une autre, j'ai réussi à chmod et à chown mon ~ dans l'oubli.

Lorsque je tente de me connecter via le shell, je reçois

bash: ~/.bashrc : Permission denied

Même après (en tant que root) j'ai exécuté

chown -hR nroach44 /home/nroach44

et

chmod -R 666 /home/nroach44

ou (comme nroach44)

chmod -R 644 /home/nroach44

Aucune de ces commandes ne renvoie d'erreur.

Également:

ls -la /home/nroach44

Retourne beaucoup de

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

De l'aide?

13
NRoach44
chmod -R 666 /home/nroach44

ou

chmod -R 644 /home/nroach44

Cela rendra tous les fichiers de votre répertoire personnel non exécutables. Ce n'était pas une bonne idée;)

Je ne sais pas comment nettoyer ce gâchis, comme solution de contournement rapide, vous pouvez essayer de le faire en tant que root:

chmod -R 755 /home/nroach44

Cette commande donnera des autorisations d'exécution sur tous les fichiers de votre dossier personnel. Cela devrait résoudre vos problèmes immédiats, mais cela pourrait être un cauchemar de sécurité.

La meilleure solution consiste à ouvrir un autre compte utilisateur et à lui transférer les fichiers et les paramètres un par un.

14
Javier Rivera

Les répertoires doivent avoir le bit d'exécution défini pour vous permettre de descendre dans le répertoire. Plain 666 est simplement faux, même si vous exécutez en tant que root. Il donne à tout le monde des autorisations d'écriture.

Pour rendre les fichiers plus sécurisés, exécutez:

chmod -R 640 /home/nroach44

Pour rendre les dossiers de nouveau descendables, exécutez:

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

Remarque: j'ai choisi xx0 car certains fichiers peuvent être sensibles et ne pas être lus par d'autres. Juste pour être sauvegardé, supprimez les permissions de lecture/écriture/exécution du monde.

4
Lekensteyn

Comme vous semblez disposer d’autorisations suffisantes sur ~, vous avez besoin de /home pour avoir l’autorisation x pour les autres (Sudo chmod +rx /home) et vérifier si les autorisations sont correctes pour le fichier /home/nroach44/.bashrc.

Un autre point, les répertoires devraient avoir les permissions x pour permettre de les entrer, donc pour les corriger tous, vous devez exécuter Sudo chmod -R +X /home/nroach44.

3
laurent

En effet, vous avez gâché les autorisations de tous les fichiers de votre dossier HOME. S'il vous plaît soyez très prudent lorsque vous jouez avec les autorisations de fichiers, utilisez chmod et chown très attentivement ou vous pourriez vous retrouver avec un désordre.

bash: ~/.bashrc : Permission denied

Je pense que vous avez modifié les autorisations de tous les fichiers de votre répertoire personnel. L’autorisation de bashrc a également été modifiée.

Les autorisations par défaut du script ~/.bashrc sont

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

Pour l'expliquer, vous devez disposer des autorisations de lecture et d'écriture sur le fichier, les autres utilisateurs du groupe d'utilisateurs doivent pouvoir le lire et tous les autres peuvent également le lire.

Alors maintenant, changez les permissions du script bashrc en utilisant chmod en 644

chmod 644 ~/.bashrc

si les commandes ci-dessus donnent l'autorisation refusée. puis

lancez chown d'abord comme Sudo

Sudo chown user1:usergrp ~/.bashrc

remplacez user1 par votre nom d'utilisateur et usergrp par votre groupe d'utilisateurs par défaut.

Maintenant encore

chmod 644 ~/.bashrc

maintenant vous aurez les permissions pour le script basrc, essayez maintenant de vous connecter et vérifiez si vous obtenez d'autres erreurs :)

1
Rajesh Pantula

Les répertoires doivent ouvrir x bits (pour les répertoires, ce bit est considéré comme un bit de recherche) pour pouvoir être ouverts. J'utilise donc tree pour que je puisse obtenir uniquement le jeu de dossiers et éviter le cauchemar de tous les fichiers en tant qu'exécutables (l'option pour tree est -d List directories only.):

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

Attention !!! vous devriez avoir ceci en considérations:

  • utiliser chmod ou chown récursif sur le répertoire racine / ou les répertoires système détruira votre système d'exploitation (en réalité, tout ce qui est récursif sur le répertoire / ou les répertoires système est dangereux)

  • ce n'est pas une bonne pratique de sécurité pour définir le volume des autorisations comme ça

0
Eduard Florinescu