Thread chmod nutzlos? - Ubuntu
(13 answers)
Opened by Snicker at 2008-11-20 20:32 Snicker+2008-11-21 16:51:25-- Wenn die Datei auf einem unixfremden Dateisystem liegt, also zum Beispiel auf einem FAT-formatierten USB-Stick, kann es in der Tat sein, dass chmod wirkungslos ist. In dem Falle muss man notfalls die Mountoptionen für das betreffende Dateisystem so anpassen, dass die Rechte passend gesetzt sind. Quote Das ist allerdings ein Trugschluss. Wenn man eine Datei ausführbar macht, wird der Kernel versuchen sie auszuführen, wenn er angewiesen wird, das zu tun. Bei einer reinen Textdatei ohne #!-Zeile wird das aber immer fehlschlagen. Ein Mechanismus, der das "Starten" von Dateien und Anwendungsprogrammen in der gleichen Weise ermöglicht, ist unter Unix anders als unter Windows nicht in den Systemkern integriert. Ich persönlich halte dieses andere Verhalten auch für ein sinnvolles sicherheitsrelevantes Feature, aber das mag Geschmackssache sein. Wenn Du ein Verhalten ähnlich wie unter Windows auslösen willst, musst Du eine API Deiner Desktopumgebung ansprechen. Unter Ubuntu also vermutlich irgendeine Funktion aus den GNOME-Bibliotheken. Da diese Bibliotheken in C geschrieben sind, wirst Du eventuell ein paar Probleme haben, sie mit Perl direkt anzusprechen, daher empfehle ich Dir, vielleicht einfach die Manpage des Programmes gnome-open durchzulesen und selbiges dann von Perl aus über -f system anzusteuern. Quote Die Datei als Pipe zu öffnen, ist auch unter Windows falsch. Es mag zwar zufällig manchmal funktionieren, aber je nachdem was für ein Programm mit der Datei verknüpft ist, kann dabei alles mögliche unverhergesehene passieren, da die Eingabe dann eventuell an das Programm gesendet würde und nicht in die Datei. Dieses unvorhersehbare, von Rechner zu Rechner unterschiedliche Verhalten, ist der genau der Grund, warum ich die Herangehensweise von Windows an das "Starten" einer Datei für nicht sehr glücklich halte. Ich würde Dir also auch für die Windowsvariante Deines Programmes eher empfehlen, erst normal in die Datei zu schreiben und dann per -f system den Kommandozeilenbefehl start zu benutzen oder über ein geeignetes Modul direkt auf die entsprechende Funktion der Win32-API zuzugreifen. When C++ is your hammer, every problem looks like your thumb.
|