Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2594 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Comment se protéger du "rm -rf *" involontaire ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment se protéger du "rm -rf *" involontaire ?

n°506209
glacote
Posté le 18-06-2004 à 10:02:42  profilanswer
 

Ca nous est tous arrivé au moins un fois, en root ou en user:

Code :
  1. rm -rf * ~


au lieu de

Code :
  1. rm -rf *~


par exemple ...
 
Comment s'en prémunir ?
export DO_NOT_ERASE="/ /bin /sbin /usr /home/glacote" # Par exemple
 
 
1 Créer des lien physiques

Code :
  1. d=/.DO_NOT_TOUCH_THIS/`date +"%Y%m%d-%kh%M" | sed "s/ /0/"`
  2. mkdir -p ${d}
  3. cp -Rl ${DO_NOT_ERASE} ${d}/


Avantage: peut être mis en crontab
Inconvénients:
  consomme de l'espace (pour les répertoires)
  ne fonctionne qu'à l'intérieur d'une unique partition
 
2 Forcer l'interactivité (lu sur /.)

Code :
  1. for d in ${DO_NOT_ERASE}; do
  2.   touch ${d}/"-i"
  3. done


Avantage: ne consomme qu'un secteur par dossier, une fois pour toutes
Inconvénient:
  ne marche que si on tape "*"
  fait planter les autres commandes: "tar *" "du -hs *" etc.
 
3 Mettre l'attribut "immutable" (voidppc)

Code :
  1. for d in ${DO_NOT_ERASE}; do
  2.   find ${d} -type f -exec chattr +i {} \;
  3. done


Avantage: on peut le faire fichier par fichier
Inconvénients:
  ça empêche aussi les modifications (/etc/ ...)
  seul root peut le faire (?)
 
4 Ne jamais rien effacer (c'est mon choix)

Code :
  1. cat > /usr/bin/norm << EOF
  2. #!/bin/sh
  3. while [ -e "$1" ] ; do
  4.   mv "$1" ."$1".removed_on_`date +"%Y%m%d-%kh%M" | sed "s/ /0/"`}
  5.   shift
  6. done
  7. EOF
  8. alias rm=/sur/bin/norm


Avantage: on ne perd jamais rien
Inconvénients:
  ne "comprend" pas "-rf"
  bizarrement j'ai beau effacer, pas moyen de récupérer de la place ...
 
 
Avez-vous d'autres trucs ?
 


Message édité par glacote le 18-06-2004 à 15:55:31
mood
Publicité
Posté le 18-06-2004 à 10:02:42  profilanswer
 

n°506213
Klaimant
?
Posté le 18-06-2004 à 10:04:54  profilanswer
 

toujours être dans un répertoire perso pour éditer un fichier de conf et bien sur éviter d'être root


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
n°506218
francoisp
Posté le 18-06-2004 à 10:08:54  profilanswer
 

rm c'est clairement la commande qu'il ne faut pas tapper à l'aveuglette.
 
d'autre part on n'est jamais cencé etre root hors pendant la config
 
et on est pas cencé etre ailleur que dans /home
et on est cencé faire des sauvegardes régulières...
 
si en respectant tout ça on pert autre chose que la sauvegarde du score d'un jeu ou un truc aussi peu important c'est que votre arborescence est horriblement malpropre !
 
ps avec un clavier QWERTY c'est encore plus simple de pas se tromper ...


---------------
If everything else failed then read the instructions
n°506222
Combi_A_Ve​ndre
Posté le 18-06-2004 à 10:19:46  profilanswer
 

"censé", pas cencé


---------------
The best way to accelerate a computer running windows is at 9.8m.s-2
n°506225
arsunik
ma tuxitude me beastifie
Posté le 18-06-2004 à 10:27:48  profilanswer
 

_ avoir un alias ou une fonction pour effacer les fichiers inutiles (par exemple les *~), par exemple :
 
cln () {
        command find ${1:-.} \( -name '*.log' -o -name '*.tmp' -o -name '*~' -o -name '.*~' -o -name '#*#' -o -name '*.o' -o -name '*.aux' -o -name '*.toc' -o -name '.saves-*' -o -name '*.old' -o -name '*.bak' -o -name 'core' -o -name '.#*' -o -name '.nfs*' -o -name '~$*' \) -print0 | perl -p0l012e unlink
}
 
_ utiliser zsh qui te demande avant d'effacer rep/*
 
_ créer une fonction/un script rm qui fait ce que veux
 
_ faire régulièrement des backup

n°506230
glacote
Posté le 18-06-2004 à 10:41:02  profilanswer
 

Klaimant a écrit :

toujours être dans un répertoire perso pour éditer un fichier de conf et bien sur éviter d'être root


 

francoisp a écrit :

rm c'est clairement la commande qu'il ne faut pas tapper à l'aveuglette.
 
d'autre part on n'est jamais cencé etre root hors pendant la config
 
et on est pas cencé etre ailleur que dans /home
et on est cencé faire des sauvegardes régulières...
 
si en respectant tout ça on pert autre chose que la sauvegarde du score d'un jeu ou un truc aussi peu important c'est que votre arborescence est horriblement malpropre !
 
ps avec un clavier QWERTY c'est encore plus simple de pas se tromper ...


 
Je n'ai jamais dit que ça ne protégeait que le super-utilisateur; au contraire en général celui qui a les droits "root" n'est pas assez benêt pour se faire avoir. L'objectif est plutôt de protéger les utilisateurs lambda contre eux-mêmes ...

n°506244
Klaimant
?
Posté le 18-06-2004 à 11:12:55  profilanswer
 

rm /bin/rm :whistle:


---------------
Fais le ou ne le fais pas, mais il n'y a pas d'essai !!!
n°506262
multani-1
Posté le 18-06-2004 à 11:32:12  profilanswer
 

Peros, ça serait plus embetant pour moi de perdre tout mes documents, que de perdre tout le système ...
Et ya pas besoin d'être root pour effacer accidentellement tout ses documents ...

n°506275
glacote
Posté le 18-06-2004 à 11:53:14  profilanswer
 

multani-1 a écrit :

Peros, ça serait plus embetant pour moi de perdre tout mes documents, que de perdre tout le système ...
Et ya pas besoin d'être root pour effacer accidentellement tout ses documents ...


Comme je l'ai dit plus haut ça protège aussi un user contre un "rm -rf *", pas seulement root.

n°506291
multani-1
Posté le 18-06-2004 à 12:09:38  profilanswer
 

glacote a écrit :

Comme je l'ai dit plus haut ça protège aussi un user contre un "rm -rf *", pas seulement root.


Je confirme donc tes propos ;)

mood
Publicité
Posté le 18-06-2004 à 12:09:38  profilanswer
 

n°506330
Zaib3k
Posté le 18-06-2004 à 13:06:03  profilanswer
 

aliaser rm en rm -i c deja bcp
 
ou alors le remplacer par une pseudo corbeille

n°506359
void_ppc
Posté le 18-06-2004 à 13:49:35  profilanswer
 

chattr +i :
 


A file with the `i' attribute cannot be modified: it cannot be deleted or renamed, no link can be created  to
       this  file  and  no  data  can  be  written  to  the  file.   Only  the superuser or a process possessing the
       CAP_LINUX_IMMUTABLE capability can set or clear this attribute.
 


 

n°506361
glacote
Posté le 18-06-2004 à 13:50:58  profilanswer
 

void_ppc a écrit :

chattr +i :
 


A file with the `i' attribute cannot be modified: it cannot be deleted or renamed, no link can be created  to
       this  file  and  no  data  can  be  written  to  the  file.   Only  the superuser or a process possessing the
       CAP_LINUX_IMMUTABLE capability can set or clear this attribute.
 




+1

n°506456
childjuice
il est ou papa ?
Posté le 18-06-2004 à 15:44:14  profilanswer
 

alias rm=ls :D


Message édité par childjuice le 18-06-2004 à 15:44:25
n°506486
Dark_Schne​ider
Close the World, Open the Net
Posté le 18-06-2004 à 16:08:12  profilanswer
 

lol


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
n°506494
Profil sup​primé
Posté le 18-06-2004 à 16:15:00  answer
 

et '*~'
 
l'étoile remplace n'importe quel caractère, mais le '~' ca correspond à quoi ?

n°506504
arsunik
ma tuxitude me beastifie
Posté le 18-06-2004 à 16:22:02  profilanswer
 

_ à ton répertoire racine (home directory)
_ à la fin d'un fichier : c'est les fichiers de sauvegarde crée par Emacs


Message édité par arsunik le 18-06-2004 à 16:22:39
n°506507
Profil sup​primé
Posté le 18-06-2004 à 16:23:50  answer
 

mais dans cette expression :
rm -rf *~  
ca fait quoi ?
 
ok suite à ton édit. c'est la 2eme explication pour cet exemple


Message édité par Profil supprimé le 18-06-2004 à 16:24:26
n°506510
glacote
Posté le 18-06-2004 à 16:27:26  profilanswer
 

jeep05 a écrit :

et '*~'
 
l'étoile remplace n'importe quel caractère, mais le '~' ca correspond à quoi ?


Ca arrive quand même très souvent de taper "rm -rf *" en toute bonne foi ... mais pas dans le bon dossier.
 
Par exemple tu installes un logiciel (tar xf XX.tar && cd XX), puis tu fais un "cd $INSTALL" puis "rm -rf", sauf que "$INSTALL" n'était pas définie ...
 
Bref ça arrive très vite. La question est de trouver des parades pour limiter les dégats.

n°506519
farib
Posté le 18-06-2004 à 16:46:55  profilanswer
 

# Demande confirmation pour 'rm *'
unsetopt rm_star_silent
 
avec zsh


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°506652
axey
http://www.00f.net
Posté le 19-06-2004 à 00:15:25  profilanswer
 

Comme l'a dit farib, utiliser ZSH évite ce genre de bourde.
 
Il y a une autre solution qui fonctionne avec tous les shells et tous les OS : dans un répértoire important, faire :
 
touch -- -@
 
Après, un rm -rf * va débuter par '-@' qui sera interprété comme une option invalide.

n°507082
HNO3
I can't use what I can't abuse
Posté le 20-06-2004 à 14:59:39  profilanswer
 

le coup du -@ ne marche pas si on fait rm -rf ./* :)
 
utiliser zsh reste une bonne solution :sol:

n°507086
jc the gre​at
Posté le 20-06-2004 à 15:21:51  profilanswer
 

rm -rf /bin/rm

n°507097
glor
Posté le 20-06-2004 à 16:11:31  profilanswer
 

alias 'rm'='rm -i'
Avec ca tu feras toutes tes commandes de supressions en intéractif.. Donc il te demanderas avant d'executer..

n°507099
apt-get
Posté le 20-06-2004 à 16:19:20  profilanswer
 

glor a écrit :

alias 'rm'='rm -i'
Avec ca tu feras toutes tes commandes de supressions en intéractif.. Donc il te demanderas avant d'executer..


 
ouaip, mais ça protège pas d'un rm -f  :/

n°507101
nicephore1​7
Un cinglé parmis les fous
Posté le 20-06-2004 à 16:39:06  profilanswer
 

Moi je dis: faire attention


---------------
Mac Pro powered (sorry)
n°507381
Profil sup​primé
Posté le 21-06-2004 à 10:24:00  answer
 

.... et taper systématiquement le chemin COMPLET du dossier à virer

n°508504
Deadlock
Feck off, cup !
Posté le 23-06-2004 à 10:05:06  profilanswer
 

Le plus simple étant de créer un fichier avec le nom "-i" dans les repertoires "sensibles". Une commande de type "rm [-options] *" va prendre ce nom fichier comme une variable.
Les fichiers commençant par "-" étant dans l'arborescence avant "." et ".." la commande rm sera en mode interractif dans ces repertoires.


Message édité par Deadlock le 23-06-2004 à 10:05:40

---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
n°508523
axey
http://www.00f.net
Posté le 23-06-2004 à 10:31:46  profilanswer
 

-@ c'est mieux : ça ne correspond à aucune option valide.

n°508527
Deadlock
Feck off, cup !
Posté le 23-06-2004 à 10:36:12  profilanswer
 

axey a écrit :

-@ c'est mieux : ça ne correspond à aucune option valide.


 
C'est une histoire de goût en effet.
Je fait des "-i" depuis 10 ans pour éviter à mes chers pisseurs de code de nous faire chier avec Netbackup toutes les 5 minutes ;)


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
n°508549
axey
http://www.00f.net
Posté le 23-06-2004 à 11:08:55  profilanswer
 

Ah bein pareil, -@ depuis 10 ans mais c'est juste parce que je ne fais jamais de backup :)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Comment se protéger du "rm -rf *" involontaire ?

 

Sujets relatifs
[PB] Extinction du moniteur involontaire - Sur plusieurs distribsProtéger une archive par mot de passe ?
Comment protéger mon acces internet ?[ext2fs] Protéger un répertoire par mot de passe
[recherche] utilitaire pour protéger un fichier par mot de passeFichier Proteger!!!!
Comment se proteger des petits malins qui ... 
Plus de sujets relatifs à : Comment se protéger du "rm -rf *" involontaire ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)