chmod dobrze znana komenda przy pomocy której możemy zmieniać prawa plików (zapis, odczyt, wykonanie). Pytanie, co zrobić jeśli usuniemy prawo do wykonywania dla komendy chmod? Problem na szczęście da się rozwiązać, a sposobów jest wiele.
Zaczynamy od usunięcia bitu executable z polecenia chmod:
[root@itcore bin]# ls -l /bin/chmod -rwxr-xr-x 1 root root 40024 Oct 27 2009 /bin/chmod [root@itcore bin]# chmod -x /bin/chmod [root@itcore bin]# /bin/chmod bash: /bin/chmod: Permission denied -rw-r--r-- 1 root root 40024 Oct 27 2009 /bin/chmod
Operacji nie da się już naprawić w prosty sposób:
[root@itcore bin]# /bin/chmod +x /bin/chmod bash: /bin/chmod: Permission denied
Naprawa
Tak jak pisaliśmy sposobów jest wiele. Możemy użyć linkera ld.so, który pozwoli nam uruchomić dowolny program:
[root@itcore ~]# /lib64/ld-2.5.so /bin/chmod +x /bin/chmod [root@itcore ~]# ls -l /bin/chmod -rwxr-xr-x 1 root root 40024 Oct 27 2009 /bin/chmod
W zależności od wersji systemu (32 lub 64bity) należy użyć katalogu lib lub lib64. Plik chmod można też naprawić używając dowolnego pliku, który aktualnie posiada prawa wykonywania. Wystarczy skopiować go gdzieś (np. jako /bin/chmod2), wyczyścić jego zawartość i wkopiować do niego oryginalnego chmod'a:
[root@itcore ~]# cp /bin/ls /bin/chmod2 [root@itcore ~]# cat /bin/chmod > /bin/chmod2 [root@itcore ~]# /bin/chmod2 [root@itcore ~]# /bin/chmod2 +x /bin/chmod [root@itcore ~]# ls -l /bin/chmod -rwxr-xr-x 1 root root 40024 Oct 27 2009 /bin/chmod [root@itcore ~]# rm /bin/chmod2 rm: remove regular file `/bin/chmod2'? y

0 Komentarze.