Ik probeerde laatst wat bestanden beginnend met een - (-2344432 etc) te wissen met "rm *". Hier kreeg ik echter een foutmelding voor omdat rm deze bestandsnamen als opties ziet. Om deze bestanden te wissen moest ik expliciet "rm -- *" geven.
Dat kan natuurlijk misbruikt worden...!
Hier een voorbeeldje met een directory inclusief 2 bestanden, die niet gewist mogen worden door een "rm *" in een hogere directory:
Echter, als er een bestand -rf in de hogere directory staat gebeurd er dit:
Oftewel: het is net of ik een "rm -rf *" heb gegeven ipv een "rm *"!
Hiermee kun je dus ongemerkt enkele nare opties mee geven met commando's...!
Dat kan natuurlijk misbruikt worden...!
Hier een voorbeeldje met een directory inclusief 2 bestanden, die niet gewist mogen worden door een "rm *" in een hogere directory:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| test@koen:~/test2$ ls -la total 12 drwxr-xr-x 3 test test 4096 Oct 27 21:49 . drwx------ 17 test test 4096 Oct 27 21:49 .. drwxr-xr-x 2 test test 4096 Oct 27 21:49 testdir test@koen:~/test2$ find . . ./testdir ./testdir/testfile1 ./testdir/testfile2 test@koen:~/test2$ rm * rm: cannot remove `testdir': Is a directory test@koen:~/test2$ find . . ./testdir ./testdir/testfile1 ./testdir/testfile2 test@koen:~/test2$ |
Echter, als er een bestand -rf in de hogere directory staat gebeurd er dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| test@koen:~/test1$ ls -la total 16 -rw-r--r-- 1 test test 1 Oct 27 21:48 -rf drwxr-xr-x 3 test test 4096 Oct 27 21:48 . drwx------ 17 test test 4096 Oct 27 21:49 .. drwxr-xr-x 2 test test 4096 Oct 27 21:49 testdir test@koen:~/test1$ find . . ./testdir ./testdir/testfile1 ./testdir/testfile2 ./-rf test@koen:~/test1$ rm * test@koen:~/test1$ find . . ./-rf test@koen:~/test1$ |
Oftewel: het is net of ik een "rm -rf *" heb gegeven ipv een "rm *"!
Hiermee kun je dus ongemerkt enkele nare opties mee geven met commando's...!