Autorisation refusée le ~ même si le propriétaire est répertorié comme moi

13

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

Lorsque j'essaie de me connecter via le shell, j'obtiens

bash: ~/.bashrc : Permission denied

Même après (en tant que root ), j'ai couru

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'erreurs.

Aussi:

ls -la /home/nroach44

Renvoie beaucoup de

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

De l'aide?

NRoach44
la source
Merci a tous! Un guide sur quels fichiers ont besoin de quelles autorisations dans le dossier de départ maintenant? :)
NRoach44
/homedevrait être drwxrwxr-xet root:rootet /home/user rw rw -- or r-selon si vous souhaitez que d'autres utilisateurs lisent vos fichiers utilisateurs. Répertoires et fichiers exécutables avec x. Le même userrépertoire intérieur ne sera pas un problème si vous avez le groupe = utilisateur (nroach44: nroach44) comme vous semblez l'avoir (je ne donnerais que 0 (---) autorisations aux autres).
laurent

Réponses:

14
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 rapide, vous pouvez essayer de le faire en tant que root:

chmod -R 755 /home/nroach44

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

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

Javier Rivera
la source
6
Je ne savais pas que les répertoires avaient besoin de x autorisations pour s'ouvrir. Je vous remercie!
NRoach44
5

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

Pour sécuriser les fichiers, exécutez:

chmod -R 640 /home/nroach44

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

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

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

Lekensteyn
la source
J'étais seulement 666 en train de tester si cela fonctionnerait ou non :)
NRoach44
4

Comme vous semblez avoir des autorisations suffisantes sur ~, vous devez /homeavoir une autorisation x pour les autres ( sudo chmod +rx /home) et vérifier si les autorisations sont correctes dans le /home/nroach44/.bashrcfichier.

Un autre point, les répertoires devraient avoir des autorisations x pour autoriser leur entrée afin de les corriger tous, vous devez exécuter sudo chmod -R +X /home/nroach44.

laurent
la source
Connaître les autorisations d'exécution était nécessaire pour entrer dans des dossiers aurait été agréable à savoir auparavant, alors merci!
NRoach44
Je ne connaissais pas le capital X+1
Lekensteyn
le capital Xest très utile et j'ai été très heureux de le découvrir aussi ... après avoir longtemps utilisé find !!
laurent
1

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 soigneusement ou vous pouvez vous retrouver avec un gâchis.

bash: ~/.bashrc : Permission denied

Je pense que vous avez changé les autorisations de tous les fichiers de votre répertoire personnel, donc 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 avoir à la fois 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 autorisations du script bashrc en utilisant chmod en 644

chmod 644 ~/.bashrc

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

exécuter chown d'abord en tant que 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 des autorisations pour le script basrc, essayez maintenant de vous connecter et vérifiez si vous obtenez d'autres erreurs :)

Rajesh Pantula
la source
0

Les répertoires nécessitent un ensemble de x bits (pour le répertoire, ce bit est considéré comme un bit de recherche) pour s'ouvrir. J'utilise donc l'arborescence pour ne pouvoir obtenir que l'ensemble de dossiers et éviter le cauchemar d'avoir tous les fichiers définis comme exécutables (l'option pour l'arborescence est -d List directories only.):

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

Avertissement!!! vous devriez avoir ceci en considération:

  • 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 fait, 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

Eduard Florinescu
la source