Michael schrieb:
astro_plan_pos_2: ELF 64-bit LSB executable, x86-64, version 1
(SYSV), statically linked, for GNU/Linux 2.4.0, stripped
download_webp_2: ELF 64-bit LSB pie executable, x86-64, version
1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=e230542b615c22a6a8592e83136fff99633c60c3, for GNU/Linux
3.2.0, not stripped
Ich habe nie mit der Compiler-Option -pie oder ähnlichem experimentiert.
Ich glaube, dass "pie executable" und "dynamically linked" eine
Fehleinschätzung sind.
Die meisten Linux-Distributionen verwenden heute Address Space Randomization, das Code an zufällige Speicheradressen lädt, und dadurch die Risiken einiger Sicherheitsfehlerklassen wie Pufferüberläufe verringert. Damit ASLR korrekt funktioniert, muß die Datei als positionsunabhängiger Code (PIE) übersetzt sein. Die meisten Distributionen machen das heute standardmäßig, indem sie ihre GNU-Compiler mit der Option "--enable-default-pie" übersetzen, so daß diese standardmäßig PIE-Executables erzeugen. Wenn Du das nicht möchtest, kannst Du es jedoch mit "-fno-pie" oder dem Shortcut "-no-pie" beim Aufruf Deines gcc(1) verhindern.
Außerdem sind Deine Programme mit Ausnahme des astro_plan_pos_2 nicht gestrippt, enthalten also noch Debuginformationen und nicht benötigte Sektionen. Wenn Du nicht planst, Deine Programme mit einem Debugger wie dem gdb(1), Memorycheckern wie valgrind(1) oder Profilern auszuführen, dann benötigst Du die Debugsymbole wahrscheinlich nicht und kannst dann Deine Programmdateien mit strip(1) kleiner machen.
Weiterhin hat der Benutzer Bauform B. vollkommen Recht, Schreibrechte sind für "group" höchstwahrscheinlich nicht nötig und für "world" erst Recht nicht. Du kannst sie daher mit "chmod go-w <datei(en)>" entfernen und hast damit noch ein weiteres potentielles Sicherheitsrisiko behoben.
Was die Icons Deiner Executables angeht, so hat die Anzeige mit allerhöchster Wahrscheinlichkeit nichts mit den Executables oder ihren Permissions zu tun, sondern mit dem Dateimanager. Entweder ist die Konfiguration der Zuordnungen von Icons zu Dateitypen nicht korrekt, oder er erkennt die Dateitypen nicht korrekt. Hinweise könntest Du womöglich erhalten, indem Du den Dateimanager einmal aus der Kommandozeile (lxterminal?) heraus startest und dort auf die Ausgaben achtest, das Programm sollte dort im Idealfalle ausgeben, wenn es Icondateien nicht finden kann oder Dateitypen nicht zuordnen kann. Außerdem dürften Blicke in Dokumentation und Konfiguration des Dateimanagers hilfreich sein, um mehr darüber herauszufinden, wie dieser Dateimanager die Dateitypen erkennt, und welche Icons er ihnen jeweils zuordnet.