sudoなしでroot所有のバイナリを実行する

sudoなしでroot所有のバイナリを実行する

インタビュー中に次の質問を受けました。

user1権限がなく、アカウントsudoにアクセスできないユーザーを使用してプログラムを実行(実行)する方法は次のとおりです。root

$ whoami
user1
$ ls -l ~/binary_program
-rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program

答え1

Linuxが利用可能動的リンカー/ローダー直接実行ELF実行可能ファイルお客様は次の内容を読みましたが、実行する権限がありません。

$ /lib/ld-linux.so.* /home/user1/binary_program

ELF実行ファイルが正常に実行されると、.interpプログラムコードセグメントに格納されている動的リンカが使用されます。ダイナミックリンカーを直接呼び出す理由(就職インタビューの外)には、アクションを変更するためにコマンドラインオプションを渡すことが含まれます。

動的リンカーの実際の位置は、環境によって大きく異なる場合があります。たとえば、64ビットUbuntuでは、リンカが/lib64/ld-linux-x86-64.so.2

答え2

ライセンスを読んだので:

$ cp ~/binary_program my_binary
$ chmod +x my_binary
$ ./my_binary

もちろん、これが自動的に魔法のようにアップグレード権限を付与するわけではありません。一般ユーザーとしてバイナリを実行し続けます。

関連情報