就職の面接で質問がありました。
どのようにユーザーに(実行)プログラムを実行することができ
user1
ずにsudo
特権とにアクセスすることなくroot
、アカウント:$ whoami user1 $ ls -l ~/binary_program -rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program
就職の面接で質問がありました。
どのようにユーザーに(実行)プログラムを実行することができ
user1
ずにsudo
特権とにアクセスすることなくroot
、アカウント:$ 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
ます。