PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : chmod 4755 ?



gm2601
27.11.05, 18:22
Hi Gurus,

...habe den Eindruck, das mir mein Suse-10.1 Alpha 3 (am Fr. inst) bei jedem boot meine /dev/lp0
verdunsten läßt...hat gedauert, bis ich dahinter kam.
Ein script, das mir /dev/lp0 erzeugt und anpaßt funktioniert als root, nicht als User guenter, WARUM nicht ??:confused:
-rwsr-xr-x 1 root shadow 75252 2005-11-14 20:32 /usr/bin/passwd
-rwsr-xr-x 1 root shadow 275 2005-11-27 17:55 make_lps
WARUM flutscht "passwd" und "make_lps" nicht ? ...darf ein script nicht mit s-bit ???
Ein chown knipst das s-bit ja wieder aus ... so also auch nicht
Geht's wirklich nur über su ?
Nachdem "IHR"mir verboten :D habt, auf meiner Single_user-kiste immer als root zu arbeiten UND ich mich ja bessern soll/will, steh' ich nun traurig da. :(

obzidian
27.11.05, 18:38
Warum erzeugst du ein /dev selber? Das ist doch der Job von udev.

gm2601
27.11.05, 19:47
Warum erzeugst du ein /dev selber? Das ist doch der Job von udev.

:D Vielleicht einfach nur, weil ich's nicht besser weiß ?? Aber danke für den Tip, bisher hab' ich eigentlich immer geflucht, weil es den (HP-UX)Befehl "insf" , den ich in grauer Vorzeit kennenlernte bei Linux nicht gibt.
Aber, why does the script not do, what it is bloody supposed to do ?? Haben Sie (hast Du) da einen Tip?

nordi
27.11.05, 22:30
Bei Skripten wird unter Linux das SUID/SGID Bit generell ignoriert. Sei es Bourne Shell, tcsh oder perl. Macht auch sicherheitstechnisch ne Menge Sinn, da es fast unmöglich ist ein Bash Skript für eine nichttriviale Sache _wirklich_ sicher zu schreiben. Als Umgehungslösung kann man ja immernoch sudo nehmen.

fuffy
28.11.05, 12:20
Hi!


Bei Skripten wird unter Linux das SUID/SGID Bit generell ignoriert. Sei es Bourne Shell, tcsh oder perl. Macht auch sicherheitstechnisch ne Menge Sinn, da es fast unmöglich ist ein Bash Skript für eine nichttriviale Sache _wirklich_ sicher zu schreiben. Als Umgehungslösung kann man ja immernoch sudo nehmen.
Das hat meines Wissens einen anderen Grund. Bei Skripten wird der Shebang ausgelesen und das Skript dem jeweiligen Interpreter als Parameter übergeben. Ausgeführt wird also in Wirklichkeit /bin/sh, /usr/bin/python oder /usr/bin/perl. Und wer hier das SUID-Bit setzt, hat einen an der Klatsche.

Gruß
fuffy

gm2601
28.11.05, 17:30
Als Umgehungslösung kann man ja immernoch sudo nehmen.



Hi!
.......... Ausgeführt wird also in Wirklichkeit /bin/sh,.... wer hier das SUID-Bit setzt, hat einen an der Klatsche.
Gruß
fuffy

Danke liebe Leute, "sodo" ist für mich doch eher die belustigend ermahnende Variante, da halte ich mir dann doch lieber ein Fenster mit "su" auf.
Nett ist auch immer wieder zu beobachten, wie sich so eine Anfrage mit steigender Responsezahl immer weiter vom Thema entfernt und zur Verfechtung eigener persönlicher Ansichten entwickelt, :D ...siehe obige "Klatsche"
Die Frage, warum's nicht funktioniert blieb leider auf der Strecke, aber solange mein workaround in etwa das Erwünschte macht ............... was soll's.

gm2601
28.11.05, 20:12
Bei Skripten wird unter Linux das SUID/SGID Bit generell ignoriert. Sei es Bourne Shell, tcsh oder perl. Macht auch sicherheitstechnisch ne Menge Sinn, da es fast unmöglich ist ein Bash Skript für eine nichttriviale Sache _wirklich_ sicher zu schreiben. Als Umgehungslösung kann man ja immernoch sudo nehmen.

Ups, wer lesen kann...
Sorry Nordi, da hab' ich Deine erste Zeile verpennt, das war die Antwort, warums nicht flutscht.
Danke

nordi
29.11.05, 00:11
Bei Skripten wird der Shebang ausgelesen und das Skript dem jeweiligen Interpreter als Parameter übergeben.
Die erste Zeile wird allerdings vom Kernel ausgelesen! Du kannst direkt einen execve Aufruf auf ein Skript machen, z.B. so:

#include <unistd.h>

int main()
{

execve ("./script.sh", NULL,NULL);
return 0;
}

Beim Abarbeiten des Syscalls hätte der Kernel durchaus die Möglichkeit das SUID Bit auszuwerten und die Shell SUID zu machen. Macht er aber halt nicht, weil es bei Skripten ein Sicherheitsalptraum ist. Sich das so zu merken wie du das geschrieben hast ist aber ne gute Eselsbrücke.

gm2601
29.11.05, 14:31
Die erste Zeile wird allerdings vom Kernel ausgelesen! Du kannst direkt einen execve Aufruf auf ein Skript machen, z.B. so:

#include <unistd.h>

int main()
{

execve ("./script.sh", NULL,NULL);
return 0;
}

Beim Abarbeiten des Syscalls hätte der Kernel durchaus die Möglichkeit das SUID Bit auszuwerten und die Shell SUID zu machen. Macht er aber halt nicht, weil es bei Skripten ein Sicherheitsalptraum ist. Sich das so zu merken wie du das geschrieben hast ist aber ne gute Eselsbrücke.


Die Botschaft hör' ich wohl,
allein, mir fehlt der Glaube...

wenn Du wüßtest, wann ich meinen letzten Prog-kurs gemacht habe.... Fortran77 auf einer nicht dialogfähigen Maschine, dann irgendwann im letzten Jahrtausend einen C-Kurs, bei dem wir am dritten Tag Pointer auf pointerfelder (dh ich war spätestens ab da, weg vom Fenster) hatten...seither keine Zeile mehr.
Trotzdem danke, war ja gut gemeint