これはArch Linuxにあります。確認してください:
[saint-llama@hubs bin]$ lsattr
--------------e----- ./install_fnp.sh
--------------e----- ./toolkitinstall.sh
--------------e----- ./FNPLicensingService
[saint-llama@hubs bin]$ file FNPLicensingService
FNPLicensingService: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-lsb-x86-64.so.3, for GNU/Linux 2.6.18, stripped
[saint-llama@hubs bin]$ ldd FNPLicensingService
linux-vdso.so.1 (0x00007ffcbafd8000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f870ce06000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f870cdfb000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f870cdd9000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f870cc93000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f870cc79000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f870cab2000)
/lib64/ld-lsb-x86-64.so.3 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f870ce60000)
[saint-llama@hubs bin]$ sudo ./FNPLicensingService
sudo: unable to execute ./FNPLicensingService: No such file or directory
だから確かに存在します。 Lddは、すべてのライブラリがリンクされていることを示しています。ドキュメントによると、64ビットスプライトです(私は64ビットをインストールしました)。
何を提供しますか? 「該当するファイルやディレクトリがありません」というメッセージが表示されるのはなぜですか?
答え1
このコマンドは、Arch Linuxで問題を解決し、elfバイナリを実行できるようにしました。
sudo pacman -Syy ld-lsb lsb-release
他の Linux バージョンでは、
インストールする必要がありますld-lsbパッケージ(またはlsb-compat
同様のパッケージを含むld-lsb-x86-64.so.3
)既存の動的リンカーを介してプログラムを開始するラッパー/実行可能スクリプトを作成します。
#! /bin/sh
/usr/lib64/ld-linux-x86-64.so.2 ./FNPLicensingService "$@"
何を提供しますか? 「該当するファイルやディレクトリがありません」というメッセージが表示されるのはなぜですか?
これはいぼとして知られています。バイナリパスが表示されますが、エラーメッセージはバイナリ自体に関するものではなく、存在しないバイナリに必要な動的リンカ/ELFインタプリタに関するものです。
の出力では、ldd
動的リンカーが実際に存在するかどうかはわかりません。これで、任意のバイナリで実行しているユーザーが自分自身を傷つけないようにするldd
ために、バイナリに書き込まれたダイナミックリンカーの代わりに「セーフパス」リストのダイナミックリンカーを使用します。ldd
バイナリインタプリタがないと、出力も混乱して誤解を招く可能性があります。簡単な例:
$ cp /bin/sh /tmp/sh
$ patchelf --set-interpreter /no/such/file /tmp/sh
$ /tmp/sh
bash: /tmp/sh: No such file or directory
$ ls /tmp/sh
/tmp/sh
$ file /tmp/sh
/tmp/sh: ELF 64-bit LSB ..., interpreter /no/such/file, ...
$ ldd /tmp/sh => /foo/bar => /lib64/ld-linux-x86-64.so.2
...
/no/such/file => /lib64/ld-linux-x86-64.so.2 (0x00007fc60d225000)
答え2
問題は、sudoが設定されていない場合、またはでsecure_path
指定されたディレクトリにあるコマンドのみを実行することである可能性があると思います。この場合、一般的なエラーメッセージはです。/etc/sudoers
$PATH
secure_path
command not found
実行可能ファイルを含むディレクトリを追加し、どのようにsecure_path
進むかを確認できます。
また、ファイルに実行可能ビットが設定されていることを確認してください。chmod +x FNPLicensingService
答え3
インターネット検索の後、このコマンドは単にコマンドラインからの実行を拒否し、メッセージを偽造したと思われます。
ライセンスサービスがMacの「サービス」ではないため、問題が発生します。 (私たちは install_fnp.sh を使って setuid-root バイナリを生成します.Flex 対応アプリケーションはライブラリを介して呼び出されます。)、これは、最後のクライアント接続が切断された後、通常FNPLicensingServiceがどれだけ長く実行されているかについての質問を提起します。
また、多くの場合、ソフトウェアに関連するマルウェアに関する多数の警告があります。注意が必要です。