
Ich habe gerade ein Szenario gefunden, das ich (oder jemand, der neu bei Linux ist) könnte versehentlich eine RM-Datei löschen, weil der Benutzer dachte, es handele sich um eine doppelte Datei. Nehmen wir an, ich habe diese beiden Binärdateien:
[xiaobai@xiaobai note]$ ls -larthi /bin/seltr2
1054051 -rwxrwxrwx. 1 root root 3.4K Oct 30 22:54 /bin/seltr2*
[xiaobai@xiaobai note]$ ls -larthi /usr/bin/seltr2
1054051 -rwxrwxrwx. 1 root root 3.4K Oct 30 22:54 /usr/bin/seltr2*
Normalerweise würde ich nicht darauf achten, ob der Inode gleich ist. Ich schaue nur auf die rechte Seite.-> Zeichenoder nicht. Das Problem tritt also auf, wenn /bin ein symbolischer Link zu /usr/bin ist:
[xiaobai@xiaobai note]$ ls -larthi /bin
16 lrwxrwxrwx. 1 root root 7 Nov 18 2014 /bin -> usr/bin/
Wenn der Benutzer also denkt, dass es sich bei der Datei nicht um einen symbolischen Link oder etwas Ähnliches handelt, kann er sie wie folgt rmen:
[xiaobai@xiaobai note]$ sudo rm /bin/seltr2
Und schließlich feststellen, dass es sich bei /usr/bin/seltr2 um dieselbe Datei handelt, und die Rettung anfordern:
[xiaobai@xiaobai note]$ ls /usr/bin/seltr2
/home/xiaobai/ls: cannot access /usr/bin/seltr2: No such file or directory
Gibt es eine einfache Möglichkeit,ls berücksichtigt, dass das übergeordnete Verzeichnis ein symbolischer Link ist, z.B:
[xiaobai@xiaobai note]$ ls -larthi /bin/seltr2
1054051 -rwxrwxrwx. 1 root root 3.4K Oct 30 22:54 /bin/seltr2* -> /usr/bin/seltr2*
Ich schaue nicht immer auf die Inode-Nummer. Gibt es eine bessere Möglichkeit, diese Art potenzieller Fehler zu vermeiden?
Antwort1
Stimmen Sie zu, dass normale Benutzer keine Root-Berechtigungen haben.
Danke für deinen Kommentar - jetzt verstehe ich die Frage - ich habe diesen Beitrag noch einmal bearbeitet
root@host:~# ls -latr /bin/test-dir
total 8
drwxr-xr-x 3 root root 4096 Nov 4 12:01 ..
-rw-r--r-- 1 root root 0 Nov 4 12:02 testfile
drwxr-xr-x 2 root root 4096 Nov 4 12:02 .
root@host:~# ls -latr /usr/bin/test-dir-link
lrwxrwxrwx 1 root root 13 Nov 4 12:03 /usr/bin/test-dir-link -> /bin/test-dir
root@host:~# rm /usr/bin/test-dir-link
root@host:~# ls -latr /bin/test-dir
total 8
drwxr-xr-x 3 root root 4096 Nov 4 12:01 ..
-rw-r--r-- 1 root root 0 Nov 4 12:02 testfile
drwxr-xr-x 2 root root 4096 Nov 4 12:02 .
root@host:~# ls -latr /usr/bin/test-dir-link
ls: cannot access /usr/bin/test-dir-link: No such file or directory
Wie Sie oben sehen können, wurde nur der „Symlink“ gelöscht, nicht aber das „Ziel“.
Außerdem scheint es einen Tippfehler in Ihren Dateien zu geben -Ihr symbolischer Link verweist auf „usr/bin“, ABER es sollte „/usr/bin“ sein.
Hoffe, das ist verständlich?