Сколько есть способов восстановить chmod?
Иногда на собеседованиях спрашивают такую задачу, на соображалку: предположим вы случайно сняли права исполнения с команды chmod. Как их восстановить?
Я решил подумать сколько способов исправить эту ситуацию я знаю.
Первый способ — скопировать chmod с соседней машины при помощи scp, sshfs и т. п. Если такая машина имеется, конечно.
Способ второй:
cp /bin/sh ~/chmod2
cat /bin/chmod > ~/chmod2
sudo ~/chmod2 +x /bin/chmod
rm ~/chmod2Третий способ (при условии, что у вас
sudo apt-get --reinstall install `dpkg -S /bin/chmod | cut -f1 -d:`Способ четвёртый:
gcc -x c - <<CHMOD
#include <sys/stat.h>
main(){chmod("/bin/chmod", S_IXUSR | S_IXGRP | S_IXOTH);}
CHMOD
sudo ./a.out
rm a.outКто ещё знает способы?
Читайте также
Запись в NTFS средствами Mac OS X
Как оказалось, использование этого небезопасно, используйте только если нет другого выхода. Как известно пользователям «маков», Mac OS X умеет монтировать диски с файловой системой NTFS только на чтение.
2011
Антипаттерн: useless cat
Есть такой антипаттерн программирования в командной строке как useless cat. Переводится не «бесполезная кошка» (хотя для смеха можно переводить и так), а как «бесполезная [команда] cat».
2013

Комментарии 28
Тоже способы :)
Комментарий для astur.net.ru:
Тут можно подмонтировать CD и скопировать оттуда chmod.
dev ~ $ scp bolk@localhost:/bin/chmod /tmp/chmod
bolk@localhost's password:
chmod 100% 59KB 58.6KB/s 00:00
dev ~ $ ls -l /tmp/chmod
-
Комментарий для Евгения Степанищева:
ОМГ, это действительно везде.
python -c 'import os; os.chmod(«chmod», 0755)'
Да, я тоже им горжусь больше всего. Собственно, когда я его придумал я и решил написать эту заметку.
Почему нельзя сразу в новый файл chmod скопировать?
В общем, суть поста понятна: есть один гениальный способ и куча очевидных :)
http://www.slideshare.net/cog/chmod-x-chmod
install -m 0777 chmod chmod.new
В этом вашем линуксе — chattr i /bin/chmod не позволит далее моменять права по неосторожности.
кстати….
lsattr /bin/chmod
-----------------e- /bin/chmod
Не стоит(в моем случае это убунта). а зря. раньше было принято в старых система доп. аттрибуты на файлы лепить как защиту от дубомудрых одминов.
вот мне самому странно что они не применяются на файлах которые можно считать частью ОС при установке/апгрейде и тд. по определеюию ОС — они и есть ее часть…
Комментарий для Евгения Степанищева:
Ещё придумал: