だから私はやったchmod -x chmod
。この問題を修正するにはどうすればよいですか?chmodに実行権を戻すにはどうすればよいですか?
Unix&Linux SEに関する質問も参照してください。
—
-unor
だから私はやったchmod -x chmod
。この問題を修正するにはどうすればよいですか?chmodに実行権を戻すにはどうすればよいですか?
回答:
/lib64/ld-linux-x86-64.so.2
代わりに使用する必要がある場合があります。 ldd /bin/chmod
実行するリンカを正確にリストする必要があります。
man ld-linux.so
:「ld.so [およびld-linux.so]は、プログラムに必要な共有ライブラリをロードし、実行するプログラムを準備してから実行します。」(ld.so
のためのものであるa.out
形式の実行可能ファイルおよびld-linux.so
ELFフォーマットのためのものである。)
ld-linux.so
並べ替え可能な実行可能ファイル/ライブラリのハイブリッド、静的リンクの並べ替え、ユーザー空間で実行され、動的にリンクされた実行可能ファイルとそのすべての依存関係を読み込んで実行します。
これは、コピー元のファイルではなく、コピー先のファイルの権限が保持されるという事実に依存しています。次の権限を「借用」していますls
。
cp /bin/ls /tmp/chmod.tmp
cp /bin/chmod /tmp/chmod.tmp
mv /tmp/chmod.tmp /bin/chmod
cp
に-pフラグを持っている必要があります
cp
、実行可能ファイルを実行した後、一時ファイルにcat
コンテンツをchmod
追加しました。
setfacl -m u::rx /bin/chmod
...所有者に実行権限を付与します。
しかし、/lib/ld-linux.so.2
トリックはきちんとしている。:)
これは奇妙です...数日前に誰かのツイートでこのようなものを見ました...
これは本当の質問ではないと思う:http : //www.slideshare.net/cog/chmod-x-chmod
新しいchmodを作成し、それを元の
umask 000
cat chmod > ~/my-chmod
~/my-chmod a+x chmod
(umask 000;gcc -o foo foo.c)
、foo
withモード777 を生成します)。ただし、多くの(ほとんどの?)シェルは、リダイレクトのためにファイルを開く/作成するときに0666を渡します。つまり、この答えは多くのシェルでは機能しません。
chmod
!