방금 내가 (혹은 리눅스를 처음 접하시는 분들)은 사용자가 중복된 파일이라고 생각하여 실수로 rm 파일을 삭제할 수 있습니다. 다음 두 개의 바이너리가 있다고 가정해 보겠습니다.
[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*
보통 아이노드가 같은지 안보고 오른쪽만 보는데-> 로고아니면. 따라서 /bin이 /usr/bin에 대한 심볼릭 링크인 경우 문제가 발생합니다.
[xiaobai@xiaobai note]$ ls -larthi /bin
16 lrwxrwxrwx. 1 root root 7 Nov 18 2014 /bin -> usr/bin/
따라서 사용자가 파일이 심볼릭 링크가 아니고 차이가 없다고 생각하면 사용자는 파일을 rm할 수 있습니다.
[xiaobai@xiaobai note]$ sudo rm /bin/seltr2
마침내 /usr/bin/seltr2가 동일한 파일이라는 것을 깨닫고 구조를 요청했습니다.
[xiaobai@xiaobai note]$ ls /usr/bin/seltr2
/home/xiaobai/ls: cannot access /usr/bin/seltr2: No such file or directory
그럼 간단한 방법은 없나요ls는 상위 디렉토리가 심볼릭 링크임을 고려합니다.,예를 들어:
[xiaobai@xiaobai note]$ ls -larthi /bin/seltr2
1054051 -rwxrwxrwx. 1 root root 3.4K Oct 30 22:54 /bin/seltr2* -> /usr/bin/seltr2*
나는 항상 inode 번호를 보지 않습니다. 이러한 잠재적인 오류를 방지하는 더 좋은 방법이 있습니까?
답변1
루트 권한이 없는 일반 사용자에 대해 동의합니다.
의견을 보내주셔서 감사합니다. 이제 문제를 이해했습니다. 기사를 다시 편집했습니다.
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
위에서 볼 수 있듯이 "symlink"만 제거되었지만 "target"은 제거되지 않았습니다.
또한 파일에 오타가 있는 것 같습니다.귀하의 심볼릭 링크는 "usr/bin"을 가리키지만 "/usr/bin"이어야 합니다.
이것이 말이 되기를 바라나요?