Ben de yaptım chmod -x chmod
. Bu sorunu nasıl düzeltebilirim? Yürütme haklarını chmod'a nasıl geri verebilirim?
Ben de yaptım chmod -x chmod
. Bu sorunu nasıl düzeltebilirim? Yürütme haklarını chmod'a nasıl geri verebilirim?
Yanıtlar:
/lib64/ld-linux-x86-64.so.2
bunun yerine kullanmak zorunda kalabilirsiniz . ldd /bin/chmod
tam olarak hangi bağlayıcıyı çalıştıracağınızı listelemelidir.
man ld-linux.so
: "ld.so [ve ld-linux.so], bir program için gereken paylaşılan kütüphaneleri yükler, programı çalıştırmaya hazırlar ve sonra çalıştırır." ( ld.so
İçindir a.out
biçim yürütülebilir ve ld-linux.so
ELF formatında içindir.)
ld-linux.so
çalıştırılabilir / kitaplık melezi türüdür, statik olarak sınıflandırılmış, kullanıcı alanında çalışır ve dinamik olarak bağlı çalıştırılabilir dosyaları ve tüm bağımlılıklarını yüklemek ve ardından bunları çalıştırmaktan sorumludur.
Python kullan:
# python
Python> import os
Python> os.chmod("/bin/chmod",0755)
python -c "import os; os.chmod('/bin/chmod', 0755)"
Bu, kopyalandığında kaynak dosya yerine bir hedef dosyanın izinlerinin korunmasına dayanır. Aşağıdakilerin izinlerini "ödünç alıyoruz" ls
:
cp /bin/ls /tmp/chmod.tmp
cp /bin/chmod /tmp/chmod.tmp
mv /tmp/chmod.tmp /bin/chmod
cp
cp
çalıştırılabilir dosyayı açtıktan sonra sadece temp dosyasının cat
içeriğini buldum chmod
.
setfacl -m u::rx /bin/chmod
... sahibine yürütme izni verir.
Ancak, /lib/ld-linux.so.2
hile temiz. :)
Bu çok garip ... Birkaç gün önce birinin tweetiyle böyle bir şey gördüm.
Bunun gerçek bir soru olmadığını düşünüyorum: http://www.slideshare.net/cog/chmod-x-chmod
yeni bir chmod oluşturun ve bunu orijinal için kullanın
umask 000
cat chmod > ~/my-chmod
~/my-chmod a+x chmod
(umask 000;gcc -o foo foo.c)
, foo
777 ile bir mod üretecektir ). Ancak, çoğu (çoğu?) Mermi, yönlendirme için dosyaları açıp / oluştururken 0666'yı geçer, bu, bu cevabın pek çok mermi altında çalışmayacağı anlamına gelir.
chmod
!