chmod -x chmod

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

Zostaw komentarz


Podpowiedź - możesz użyć tych HTML tagów i atrybutów:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Obraz CAPTCHY

*