web-dev-qa-db-ja.com

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

私は就職の面接で質問がありました:

Sudo特権なしでrootアカウントにアクセスせずに、ユーザーuser1でプログラムを実行(実行)するにはどうすればよいですか。

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

読み取り権限があるため:

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

もちろん、これはエスカレートされた特権を自動的に魔法で付与するものではありません。そのバイナリを通常のユーザーとして実行します。

17
Joseph R.

Linux 動的リンカー/ローダー を直接使用して、読み取り権限を持っている ELF実行可能ファイル を実行できますが、実行権限はありません。

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

ELF実行可能ファイルが通常実行される場合、プログラムコードの.interpセクションに格納されているダイナミックリンカーが使用されます。ダイナミックリンカーを直接(ジョブインタビューの外で)呼び出す理由には、その動作を変更するコマンドラインオプションを渡すことなどがあります。

動的リンカーの実際の場所は環境に大きく依存する場合があることに注意してください。たとえば、64ビットUbuntuでは、リンカーは/lib64/ld-linux-x86-64.so.2にあります。

20
Thomas Nyman