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


12

就職の面接で質問がありました。

どのようにユーザーに(実行)プログラムを実行することができuser1ずにsudo特権とにアクセスすることなくroot、アカウント:

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

回答:


17

読み取り許可があるため:

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

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


4
@ user2555595あなたが間違っているのではないかと心配です。所有しているファイルの実行ビットを削除して実行してください。実行ビットが設定されていないファイルを実行すると、ルートでさえ「許可が拒否されます」。
ジョセフR. 14

あなたは、正しい情報をありがとう
user2555595

5
@ user2555595これはスクリプトにのみ適用され、バイナリには適用されません。インタープリターとして呼び出されたbash場合、より具体的にのみ、またはPOSIXシェルスクリプトbash
トーマスナイマン14

情報ありがとうございます!ごきげんよう!
inivanoff1 14

2
@ inivanoff1回答の1つを「Accepted」とマークすることを忘れないでください。そうすれば、人々はこの質問が解決されたことを知ることができます。
ジョセフR. 14

20

Linux ダイナミックリンカー/ローダーを直接使用して、読み取り権限があるが実行権限はないELF実行可能ファイル実行できます。

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

ELF実行可能ファイルが通常実行される場合.interp、プログラムコードのセクションに格納されている動的リンカーが使用されます。動的リンカーを直接呼び出す理由(就職の面接以外)には、その動作を変更するコマンドラインオプションを渡すことが含まれます。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.