[openSUSE] Wie setze ich verzeichnise auf noexec?

ReVo

Lieutenant
Registriert
Jan. 2006
Beiträge
567
Hallo,

ich habe gehört, dass man dank noexec verbieten kann, dass irgendwelche standalone binaries laufen können. Leider verstehe ich überhaupt nicht was und wie man das machen muss.

Irgendwas mit mounten ^^, google spuckt mir zu noexec nicht so wirklich hilfreiche sachen raus. Weiß jemand wie man einzelne verzeichnise und/oder komplett das system auf noexec legt?

Danke schonmal,
Gruß
 
Hi ReVo,

wenn ich dich richtig verstehe, meinst du ob man eine Datei ausführen darf oder nicht.
Was allerdings mit mounten von diversen Daten/Dateisystemen etc nichts zu tun haben sollte.

Unter Linux hat jede Datei verschiedene Rechte. Du kannst dir die Rechte mit dem Befehl "ls -l" anzeigen lassen.

Bevor ich jetzt versuche dir das ganze zu erklären kannst du dir den Eintrag in Wikipedia ansehen. Dort ist die Rechtevergabe recht gut erklärt.

Wie gesagt, wenn ich dich in dem Zusammenhang richtig verstanden habe.

Weiß jemand wie man einzelne verzeichnise und/oder komplett das system auf noexec legt?

Einzelne Dateien kannst du z.B. mit "chmod -x dateiname" die Rechte zum Ausführen entziehen. Verzeichnisse mit allen Unterordnern/Dateien kannst du mit "chmod -R -x verzeichnisname" die Ausführbarkeitsrechte wegnehmen.

Allerdings ist (siehe Wikipedia) eine Unterscheidung zwischen Benutzer, Gruppe und Anyone gegeben. Wenn du dem ganzen System mit -R (Recursiv) die Rechte auf alle Dateien zum Ausführen entziehst, wird dein System nicht mehr funktionieren, da du somit allen Skripten verbietest zu laufen ;-)

Ich kann dir allerdings auch gerne weiterhelfen, wenn du mir sagst was du damit vorhast etc

gz
- ChillazZ
 
Hallo,

danke für die infos. Davon habe ich schon halbwegs einiges gelesen, aber ich habe mal diesen artikel: http://wiki.hetzner.de/index.php/Temp_Noexec_Mount

da wird von noexec gesprochen. Im grunde wollte ich, wie da empfohlen wird erstmal mein temp verzeichnis auf noexec setzen. Ausserdem habe ich noch ein "downloadsystem" wo im grunde überall eine sogenannte noexec drauf sein sollte, weil da alles müll vom netz drauffliegt.

Naja und so ganz verstehe ich meinen geposteten artikel nicht. Also das wird ja beschrieben, aber ich weiß nicht wie er das da auf noexec stellt. Bzw. was sind jetzt die unterschiede zwischen rechtevergaba(so wie du das geschrieben hast) und was da in mein artikel beschrieben wird? - weil im grunde verbieten/erlauben beide die ausführung von programmen/bin codes

Gruß
 
Zuletzt bearbeitet:
Wenn du nichts mit "mounten" anfangen kannst, wäre eine Google Suche "Linux mount" der erste Schritt. ;) Nur kurz: Mit mounten meint man das Einbinden von Partitionen und Dateisystemen.

Bei dem geposteten Tutorial hat man einfach für /tmp eine eigene Partition angelegt. Diese hat man dann mit der Option "noexec" gemountet. Das heißt, dass keine Datei auf dieser Partition ausgeführt werden kann.
Das Ganze geschieht unabhängig von den Rechten einer Datei. Man kann die Rechte einer Datei auf einer solchen Partition beliebig ändern (z.B. die Datei mit "chmod +x" als ausführbar markieren), aber man sie nicht ausführen. Wie im Tutorial erwähnt, kann das einige Nebenwirkungen haben, wenn man /tmp so anlegt.

Geht es um einen Desktop-PC? Normalerweise wird unter Linux keine Datei mit dem executable bit (also ausführbar) erstellt; es sei denn, man hat das so eingestellt. Dein Download Ordner sollte also "sicher" sein.
 
magnus16 hat ja eigentlich schon alles erklärt. Noch mal zur Verdeutlichung, wenn du uns sagst, was du vorhast/damit bewirken möchtest können wir dir weiterhelfen und wissen auf was du eigentlich hinaus möchtest.

Also..
Naja und so ganz verstehe ich meinen geposteten artikel nicht
Das ist echt nicht gut, warum postest du denn dann überhaupt :D
ok ... scherz beseite..

Also das wird ja beschrieben, aber ich weiß nicht wie er das da auf noexec stellt
Du kannst die Festplatte/Partition manuell oder eben wie in dem "HowTo" über die fstab mounten.
Alle Partitionen, welche richtig in der fstab stehen, werden beim booten vom System über die jeweiligen Optionen in der fstab gemountet. Was natürlich auch per Hand gemacht werden kann. Aber bleiben wir mal bei deinem Howto.

Code:
 # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
/dev/hda1               /boot           ext2            noauto,noatime          1 1
[COLOR=blue]/dev/hda3               /tmp            ext3            noatime,noexec          1 1[/COLOR]
/dev/hda4               /               ext3            noatime,usrquota        0 1
/dev/hda2               none            swap            sw                      0 0
none                    /proc           proc            defaults                0 0
Du mountest die Partition /dev/hda3 mit der noexec Option. Da diese wie bereits gesagt, normlerweise vom System beim Booten gemountet wird, und somit erst mit dem noexec Parameter eingebunden wird, remountest du die Platte.

Code:
 mount -o remount /tmp
Jetzt sollte die Festplatte, wenn du "mount" eingibst mit der noexec Option gemountet sein.
Zur Überprüfung: "mount | grep /dev/hda3" (mount gibt dir aus, was auf deinem System alles gemountet ist. Mit "grep" suchst du nach dem Begriff "/dev/hda3" womit dir die anderen Festplatten nicht angezeigt werden.. logisch..

Weiteres auch unter http://www.tuxfiles.org/linuxhelp/fstab.html

Alles andere wurde ja bereits erklärt ;-)

gz
- ChillazZ
 
Zurück
Oben