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.