chmod 700 -R ~ - est-ce sécuritaire?

4

Je pense faire 'chmod 700 -R ~'. Cela peut-il être dangereux? Que peut-il arriver à quoi je ne m'attends pas? De plus, y a-t-il un moyen de garder tous les fichiers sur $ HOME pour qu'ils soient -rwx ------?

Anon
la source
3
Pourquoi pas juste chmod go-rx ~? Pas besoin de recurse. (FWIW, certains systèmes peuvent ne pas l’aimer, par exemple, lorsque les utilisateurs publient des sites Web avec ~/Sitesou ~/wwwou quelque chose du genre - le serveur http doit alors avoir accès à ~- mais vous le sauriez si vous le faisiez).
Daniel Beck
Bien sûr, si quelqu'un copiait hier l'un des fichiers lisibles par Anon, il n'y avait aucun moyen de le récupérer. Mais que se passe-t-il si quelqu'un crée un lien dur vers l'un de ses fichiers? chmodL’installation du répertoire personnel n’affectera pas cela; il a besoin de récursivité pour rendre le fichier lié privé.
Scott
1
Vous n'êtes pas obligé de faire un récursif chmod. chmod 700 ~empêchera tous les regards indiscrets de votre répertoire personnel.
mardi
@mtak: Ummm, avez-vous lu les commentaires existants?
Scott
Que diriez-vous de faire chmod 700 /home/*au lieu de faire récursif. Etant donné que si l'accès aux répertoires parents est refusé, les autres utilisateurs ne pourront pas accéder à leurs sous-répertoires. Si une récursion est requise après la création d'un nouveau dossier sous home, ~nous devons en modifier l'autorisation. Il peut être difficile de suivre tous les nouveaux dossiers et de mettre à jour leur autorisation. @Scott
alper

Réponses:

5

Le principal problème que je peux penser est que cette commande va régler le e x ecute peu sur tous les fichiers, même ceux qui ne sont pas exécutables. Donc, si vous avez un fichier appelé foo, et qu'un jour vous voulez faire cat fooou print fooet que vous tapez accidentellement juste foo, le shell va essayer de s'exécuter foo; c'est-à-dire interprète-le comme un script shell. Cela va probablement exploser de manière inoffensive dans votre visage, mais si footout ce qui ressemble à une commande shell contient des résultats néfastes.

Un moindre problème est que si vous avez un fichier que vous souhaitez conserver, et l' année dernière vous avez fait un chmod 444pour le protéger de vous - même, chmod 700rétablirons votre w bit rite, et le rendre plus facile pour vous écraserait le fichier au hasard.

La solution à ces deux problèmes est de faire chmod go= -R ~ou chmod go-rwx -R ~, ce qui désactivera tous les bits pour le groupe et les autres, tout en laissant votre accès seul.

Scott
la source
1
Pourrais-je courir chmod 700 /home/*au lieu de faire récursif. L'accès à l'autorisation du répertoire parent étant refusé, les autres utilisateurs ne pourront pas accéder à leurs sous-répertoires. @Scott
alper
0

C'est un peu vieux maintenant, mais vous pouvez le faire chmod 700pour les dossiers et les chmod 600fichiers et cela résoudrait le problème de l'ajout du bit d'exécution à tous les fichiers normaux (vous devez exécuter les dossiers à ls).

find ~ -type d -print0 | xargs -0 chmod 700
find ~ -type f -print0 | xargs -0 chmod 600
Brendan Stennett
la source
3
Cette commande GNU coreutils a le même effet: chmod -R ~ go-rwx,u+rwX. Il supprime d’abord les autorisations de groupe et de monde, puis ajoute la lecture et l’écriture à l’utilisateur et s’exécute dans des répertoires. Attention: certains fichiers sont supposés avoir un bit d’exécution (comme ceux de ~/bin/ou node_modules/bin/).
Lekensteyn