Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sudo dangereux ?

18 réponses
Avatar
Jo Engo
petit test :
abdallah@poupon-la-peste:~/toto$ mkdir test.sudo
abdallah@poupon-la-peste:~/toto$ cd test.sudo
abdallah@poupon-la-peste:~/toto/test.sudo$ ls
abdallah@poupon-la-peste:~/toto/test.sudo$ touch pas.touche
abdallah@poupon-la-peste:~/toto/test.sudo$ chmod u-w pas.touche
abdallah@poupon-la-peste:~/toto/test.sudo$ ls -l
total 0
-r--r--r-- 1 abdallah abdallah 0 déc. 25 13:49 pas.touche
abdallah@poupon-la-peste:~/toto/test.sudo$ rm *.*
rm : supprimer 'pas.touche' qui est protégé en écriture et est du type
« fichier vide » ? n
abdallah@poupon-la-peste:~/toto/test.sudo$ sudo !!
sudo rm *.*
[sudo] Mot de passe de abdallah : 
abdallah@poupon-la-peste:~/toto/test.sudo$ ls
abdallah@poupon-la-peste:~/toto/test.sudo$

# Je m'attendais à ce que sudo n'admette pas comme argument rm *.*

encore plus dangereux : je change de répertoire par exemple /bin et je
fais !sudo (j'ai oublié le sudo rm *.* moins de 10 ' auparavant)

--

20:03 mon Dieu pardonnez moi, je suis en train de pecher...
20:05 20:03 ça mord ?
20:12 20:05 j'espere bien que non! sinon elle va me faire mal...

8 réponses

1 2
Avatar
Jo Engo
Le Tue, 25 Dec 2018 20:52:29 +0100, Olivier Miakinen a écrit :
Sous MS-DOS, en revanche, tous les fichiers ont *exactement* un point
dans leur nom, et en outre je crois bien qu'il est obligatoire de faire
« rm *.* ».

DOS, que ce soit drDOS, FreeDOS ou msdos et c'est DEL pas RM (j'ai mis en
caps parce que pas de casse avec DOS)
--
S U S
U B U
S U S Beau parleur à prendre dans la nasse
-- Zalmanski, Alain
Avatar
Olivier Miakinen
Le 25/12/2018 19:37, Pierre www.zetrader.info a écrit :
Mais il y a autre chose dans l'article initial qui m'a fait furieusement
penser à Windows : c'est d'espérer qu'une commande nous « protège » de
nos propres bêtises, alors que justement c'est ça qui finit par inciter
à en faire, des bêtises !

C'est pas bien de protéger les fichiers du système ou une partition avec
l'OS par des avertissements supplémentaires ?

Ce qui ne serait pas bien, ce serait de décider à la place de
l'utilisateur qu'une certaine forme de rm (en l'occurrence rm *.*)
serait plus dangereuse qu'une autre, or c'est ce à quoi semblait
s'attendre Jo en écrivant (je le cite) « Je m'attendais à ce que
sudo n'admette pas comme argument rm *.* ».
Et oui, c'est dangereux, parce qu'un utilisateur qui se dit que
de toute façon on l'empêchera de faire cette commande dangereuse,
il ne se méfiera pas avec (par exemple) « rm [^@]* » alors que
ça effacera aussi bien tous les fichiers... sauf ceux qui
commenceraient par "@" et il n'y en a peut-être pas tant que ça.
Je ne trouve pas ça si mal que ça, une fausse manip peut arriver facilement.

Ce que je prétends, c'est qu'une fausse manip arrivera d'autant plus
facilement quand on croit que le système nous empêchera de la faire.
Par ailleurs, quand on fait une commande potentiellement destructive,
eh bien on y regarde à deux fois avant de taper sur la touche Enter.
--
Olivier Miakinen
Avatar
Olivier Miakinen
Le 25/12/2018 20:56, Jo Engo a écrit :
Sous MS-DOS, en revanche, tous les fichiers ont *exactement* un point
dans leur nom, et en outre je crois bien qu'il est obligatoire de faire
« rm *.* ».

DOS, que ce soit drDOS, FreeDOS ou msdos et c'est DEL pas RM (j'ai mis en
caps parce que pas de casse avec DOS)

Oui, en effet. Mais DEL *.* et pas DEL * (si je ne m'abuse).
--
Olivier Miakinen
Avatar
Benoit Izac
Bonjour,
Le 25/12/2018 à 20:52, Olivier Miakinen a écrit dans le message
<pvu1pt$1jgm$ :
sudo rm *.*


*.*, on se croirait sous Windows :D

Ça ne marche pas *.* sous Linux ?

Bien sûr que si, ça n'efface que les fichiers qui ont un « . » dans
le nom.

Pas tout à fait ; ça va marcher pour « a.b » ou « a. » mais pas pour
« .a ».
Lorsque tous les fichiers d'un répertoire ont un « . » dans leur nom,
ou lorsqu'on veut effacer tous les fichiers d'un répertoire quel que
soit leur nom, sous Linux il est équivalent et beaucoup plus simple
d'écrire « rm * » que « rm *.* ».

Tous les fichiers sauf ceux dont le nom commence par un « . ».
--
Benoit Izac
Avatar
Olivier Miakinen
Le 25/12/2018 20:52, j'avais pêché par excès de simplification.
Le 25/12/2018 23:10, Benoit Izac m'a répondu :
*.*, on se croirait sous Windows :D

Ça ne marche pas *.* sous Linux ?

Bien sûr que si, ça n'efface que les fichiers qui ont un « . » dans
le nom.

Pas tout à fait ; ça va marcher pour « a.b » ou « a. » mais pas pour
« .a ».
Lorsque tous les fichiers d'un répertoire ont un « . » dans leur nom,
ou lorsqu'on veut effacer tous les fichiers d'un répertoire quel que
soit leur nom, sous Linux il est équivalent et beaucoup plus simple
d'écrire « rm * » que « rm *.* ».

Tous les fichiers sauf ceux dont le nom commence par un « . ».

Tu as raison sur tout.
La vraie raison à la remarque de Christophe Perez, « *.*, on se croirait
sous Windows », c'est que lorsque l'on veut dire « tous les fichiers
*sauf cas particuliers* », sur Unix et Linux on pense plutôt à « * »
alors que sur DOS et Windows on pense plutôt à « *.* ».
--
Olivier Miakinen
Avatar
Christophe PEREZ
Le Tue, 25 Dec 2018 23:20:36 +0100, Olivier Miakinen a écrit :
La vraie raison à la remarque de Christophe Perez, « *.*, on se croirait
sous Windows », c'est que lorsque l'on veut dire « tous les fichiers
*sauf cas particuliers* », sur Unix et Linux on pense plutôt à « * »
alors que sur DOS et Windows on pense plutôt à « *.* ».

C'est tout à fait ça.
Sous Linux, *.* est un cas particulier. Alors que sous windows, c'est le
cas général pour "tout".
Avatar
Jo Engo
Le Tue, 25 Dec 2018 21:03:09 +0100, Olivier Miakinen a écrit :
Oui, en effet. Mais DEL *.* et pas DEL * (si je ne m'abuse).

shame on me, je n'ai as réussi à faire marcher freeDOS en machine
virtuelle. En DOS le * n'a pas la même signification qu'en regexp (et en
sh)
--
Révolution française, Un Corse la finira.
-+- Alphonse Allais, Anagrammes -+-
Avatar
Doug713705
Le 2018-12-25, Olivier Miakinen nous expliquait dans
fr.comp.os.linux.configuration
(<pvtat2$1eu5$) :
Le 25/12/2018 13:59, Jo Engo a écrit :
[...]
:~/toto/test.sudo$ sudo !!
sudo rm *.*

Et :
[...]
encore plus dangereux : je change de répertoire par exemple /bin et je
fais !sudo (j'ai oublié le sudo rm *.* moins de 10 ' auparavant)

Je ne connaissais pas ! et !! dans bash, mais c'est bien ÇA qui est
dangereux et pas le sudo. Que tu aies les droits de root ou pas,
relancer une commande sans voir ce qu'elle va faire, il est bien
évident que ça peut détruire des trucs que tu ne voulais pas.
# Je m'attendais à ce que sudo n'admette pas comme argument rm *.*

Et puis quoi encore ? D'une part il peut y avoir des raisons
parfaitement valides de faire un sudo rm *.*, d'autre part il
peut y avoir des commandes plus dangereuses que rm *.*, et sudo
ne peut pas les détecter pour te protéger contre toi-même !

Non, mais il peut être paramétré pour n'autoriser que certaines commandes.
Ces mêmes commandes qui pourront toujours être exécutées par
l'utilisateur root.
--
On s'est aimés dans les maïs.
T'en souviens-tu, mon Anaïs ?
Le ciel était couleur de pomme
Et l'on mâchait le même chewing-gum.
-- H.F. Thiéfaine, Dernière station avant l'autoroute
1 2