Так что я сделал chmod -x chmod
. Как я могу решить эту проблему? Как мне вернуть права на выполнение для chmod?
Это основано на том факте, что права доступа к файлу назначения сохраняются, а не к исходному файлу, когда он копируется. Мы «заимствуем» разрешения ls
:
cp /bin/ls /tmp/chmod.tmp
cp /bin/chmod /tmp/chmod.tmp
mv /tmp/chmod.tmp /bin/chmod
Используйте python:
# python
Python> import os
Python> os.chmod("/bin/chmod",0755)
Используя Perl:
% perl -e 'chmod 0755, qw[/bin/chmod]'
setfacl -m u::rx /bin/chmod
... предоставит владельцу права на выполнение.
Но /lib/ld-linux.so.2
трюк аккуратный. :)
Это странно ... Я видел нечто подобное несколько дней назад через чей-то твит ...
Если вы находитесь в системе, где /bin/chmod
не может быть загружен динамическим компоновщиком:
# /bin/mv /bin/chmod /bin/chmod.tmp
# install -p -m 755 /bin/chmod.tmp /bin/chmod
Это работает в моей системе MacOS X.
/ спасение / chmod 555 / bin / chmod
Я думаю, вы также можете использовать mtree.
Подозреваю, что это не настоящий вопрос: http://www.slideshare.net/cog/chmod-x-chmod
создать новый chmod и использовать его для исходного
umask 000
cat chmod > ~/my-chmod
~/my-chmod a+x chmod