端末を介してシステムコマンド内で特定のシステムコールが使用されているかどうかを確認するには?

端末を介してシステムコマンド内で特定のシステムコールが使用されているかどうかを確認するには?

私はLinuxに初めて触れました。システムコマンドが内部的に特定のシステムコールを使用しているかどうかを端末で確認する方法を知りたいです。ハードリンクを実行しているとしましょう。したがって、 "ln"コマンドは内部的にlink()システムコールを使用します。同様に、rmコマンドはunlink()システムコールを使用します。

答え1

プログラムで使用されているシステムコールを追跡するために使用できますstrace。例えば

strace -f ls

さまざまなオプションがあります。man straceシステムを参照するかオンライン選択したシステムコール、入力/出力などのみを表示するように出力をフィルタリングする機能など、詳細をご覧ください。

strace(setuid root)などのsetuid / setgidプログラムを使用すると、トレース/usr/bin/passwd中にターゲットアプリケーションの権限が削除されます。

関連情報