[gelöscht] Hallo, ich habe ein kleines C-Programm geschrieben, dass ich als user starten möchte und mit root Rechten laufen sollte. Nun gibt es da wohl mehrere Möglichkeiten, z.B. setuid- Bit oder sudo. Welche Methode ist aus Sicherheitstechnischen Aspekten da die Beste?
GerBra Kannst du dir eigentlich selbst beantworten: Würdest du /bin/rm setuid setzen auf deinem Rechner?
[gelöscht] Ich habe ein harmloses Programm, dass den CPU Fan regelt. Also sollte ich das mit sudo lösen oder gibt es noch andere Möglichkeiten?
GerBra Harmlos sagst du 😉 100% bugfrei 😉 setuid setzen gilt halt für alle User, ohne Nachfrage, ohne Überprüfung. Wenn bei dir jeder User (der irgendwie an deinen Rechner kommt, jetzt und in Zukunft) den Lüfter regeln können soll, dann wäre setuid vertretbar. Ping z.B. ist ja auch nur durch setuid und root.root möglich für den Sterblichen. Wenn du dir also über dein Programm im klaren bist... Ansonsten bin ich eigentlich immer der Vertreter von: je weniger Rechte ein User hat, desto besser für's System 😉 Ich würde nur mir und root (sowieso) das Recht mit diesem Vorgang(Fan) und dem Tool zugestehen. Also mit paßwortlosem sudo.
[gelöscht] Gut. Ich habe mein System nach setuid Programmen abgesucht. Es fängt an bei chage bis hin zu Xorg. Gibt es irgendwo eine Liste, welche Programme das zwingend benötigen damit das System (mit XFCE) noch läuft?
GerBra Zwingend notwendig? Ich würde sagen, die setuid-gesetzen Programme, die mit dem Paketsystem deiner Distribution kommen, sind ok. irgendjemand mußt du vertrauen 😉 Wenn sich dein Rechner um einen öffentlich zugänglichen Server handelt (oder du zu Paranoia neigst) ist ein guter Ansatz, einen cron-job einzurichten, der setuid- Veränderungen an Programmen überwacht und meldet. setuid vs. sudo dient IMHO halt einfach der Risiko-Minimierung. Beim Programmieren in C (ich nur rudimentär Ahnung von) gibt es AFAIK auch Mechanismen, Teile als superuser auszuführen bzw. wenn mit Superuser-Rechten gestartet, diese sobald wie möglich abzugeben und als ein weniger priviligierter User weiterlaufen zu lassen. Der Apache macht es IMHO so. Aber Details entziehen sich meiner Kenntniss.
[gelöscht] HI, Danke! das ist ein guter Ansatz. Ich habe hier noch ein paar Infos gefunden: http://setuid.org/Linux/ Mfg Tribaltrouble