Die Datei existiert definitiv. Beim Versuch, sie auszuführen, wird die Meldung „Keine solche Datei oder kein solches Verzeichnis“ angezeigt.

Die Datei existiert definitiv. Beim Versuch, sie auszuführen, wird die Meldung „Keine solche Datei oder kein solches Verzeichnis“ angezeigt.

Dies ist auf Arch Linux. Schauen Sie sich das an:

[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

Es existiert also definitiv. Ldd zeigt, dass alle Bibliotheken verknüpft sind. Die Datei zeigt, dass es sich um ein 64-Bit-Elf handelt (und ich verwende eine 64-Bit-Installation).

Was ist los? Warum erhalte ich die Meldung „Keine solche Datei oder kein solches Verzeichnis“?

Antwort1

Dieser Befehl hat das Problem unter Arch Linux für mich behoben und ermöglichte mir die Ausführung der Elf-Binärdatei:

sudo pacman -Syy ld-lsb lsb-release

Für andere Linux-Varianten:

Installieren Sie entweder dield-lsb-Paket(oder lsb-compatein ähnliches Paket, das enthält ld-lsb-x86-64.so.3) oder erstellen Sie einen Wrapper/ein ausführbares Skript, das Ihr Programm über den vorhandenen dynamischen Linker startet:

#! /bin/sh
/usr/lib64/ld-linux-x86-64.so.2 ./FNPLicensingService "$@"

Was ist los? Warum erhalte ich die Meldung „Keine solche Datei oder kein solches Verzeichnis“?

Das ist ein bekanntes Problem. Obwohl der Pfad der Binärdatei angezeigt wird, bezieht sich die Fehlermeldung darauf, dass der von der Binärdatei benötigte dynamische Linker/ELF-Interpreter nicht existiert, und nicht auf die Binärdatei selbst.

Die Ausgabe von lddsagt Ihnen NICHT, ob der dynamische Linker wirklich existiert; lddheutzutage wird ein dynamischer Linker aus einer Liste „sicherer Pfade“ anstelle des in die Binärdatei eingebrannt, um zu verhindern, dass Benutzer, die lddzufällige Binärdateien ausführen, sich selbst schaden. Und seine Ausgabe ist auch im Fall von Binärdateien, deren Interpreter nicht existiert, verwirrend und irreführend. Einfaches Beispiel:

$ 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)

Antwort2

Ich denke, das Problem könnte darin liegen, dass sudo nur Befehle ausführt, die in den secure_pathin /etc/sudoersoder angegebenen Verzeichnissen vorhanden sind, $PATHwenn secure_pathnicht festgelegt ist. In diesem Fall lautet die übliche Fehlermeldung jedoch command not found.

Sie könnten versuchen, das Verzeichnis mit einer ausführbaren Datei hinzuzufügen secure_pathund sehen, ob das funktioniert.

Stellen Sie außerdem sicher, dass für die Datei ein Ausführungsbit gesetzt ist:chmod +x FNPLicensingService

Antwort3

Nach Google vermute ich, dass dieser Befehl sich einfach weigert, von der Befehlszeile aus ausgeführt zu werden und diese Meldung vortäuscht.

https://community.flexera.com/t5/FlexNet-Publisher-Knowledge-Base/How-long-does-FNPLicensingService-normally-stay-running-after/ta-p/5516

Frage Da der Lizenzierungsdienst auf einem Mac kein "Dienst" ist (wir verwenden install_fnp.sh, um eine Setuid-Root-Binärdatei zu generieren, diewird von Flex-fähigen Anwendungen über unsere Bibliotheken aufgerufen), wirft die Frage auf, wie lange FNPLicensingService normalerweise weiter ausgeführt wird, nachdem der letzte Client die Verbindung getrennt hat?

Es gibt auch zahlreiche Warnungen, dass mit dieser Software oft Malware verbunden ist. Vorsicht ist geboten.

verwandte Informationen