私は就職の面接で質問がありました:
Sudo
特権なしでroot
アカウントにアクセスせずに、ユーザーuser1
でプログラムを実行(実行)するにはどうすればよいですか。$ whoami user1 $ ls -l ~/binary_program -rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program
読み取り権限があるため:
$ cp ~/binary_program my_binary
$ chmod +x my_binary
$ ./my_binary
もちろん、これはエスカレートされた特権を自動的に魔法で付与するものではありません。そのバイナリを通常のユーザーとして実行します。
Linux 動的リンカー/ローダー を直接使用して、読み取り権限を持っている ELF実行可能ファイル を実行できますが、実行権限はありません。
$ /lib/ld-linux.so.* /home/user1/binary_program
ELF実行可能ファイルが通常実行される場合、プログラムコードの.interp
セクションに格納されているダイナミックリンカーが使用されます。ダイナミックリンカーを直接(ジョブインタビューの外で)呼び出す理由には、その動作を変更するコマンドラインオプションを渡すことなどがあります。
動的リンカーの実際の場所は環境に大きく依存する場合があることに注意してください。たとえば、64ビットUbuntuでは、リンカーは/lib64/ld-linux-x86-64.so.2
にあります。