Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

05.06.2008, 11:07

Benutzerrechte

Hallo Zusammen,

bin seit heute dabei. Bin Linuy Rookie, deshalb vorab sorry wenn erstmal nix dolles beitragen kann. Hoffe bald ...

Mein Problem(chen):

Habe Suse 10.2 mit Apache/php5/mysql5 laufen. Möchte nun einen User einrichten, der möglichst nix darf aber: IP-Adresse/Rechnername ändern, , httpdconf ändern, mysql-dump einspielen, documentroot einspielen.
Geht das, ohne das der User root ist ?

Danke vorab und sorry wenn offtopic oder im falschen board

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »chicken62« (05.06.2008, 11:08)


2

05.06.2008, 16:46

Es könnte zwar gehen, aber es entstünden dabei vermutlich Sicherheitslücken, die ein Angreifer dann nutzen könnte, um doch als root zu agieren.

Speziell beim Ändern der IP und de Hostnamens könnte sowas passieren. Auch der evtl. nötige Neustart der daemons könnte eine zusätzliche Gelegenheit bieten.

Das Risiko ist IMHO auch hoch, dass ein Angreifer zwar nicht als root, aber als der Benutzer des Apache-/MySQL-Servers agiert, weil er ja "Schwachstellen" in den Konfigurationsdateien nutzen könnte, z.B. kann er darin ja seine Malware als Interpreter für irgendwas angeben und es dann über eine HTTP-Anfrage starten. Gerade auch weil er ja PHP-Scripte nach belieben ins Document-Root legen kann.

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

3

05.06.2008, 17:26

bei apache und mysql sehe ich jetzt nicht das problem, die kann man ja mit userrechten auch starten (wenn erlaubt), müssen eben ports üner 1024 benutzt werden (evtl umleitung der anfragen durch iptables port 80 -- > port <neu>

bei der ip frage ich mich natürlich, wieso ein user die verstellen sollte, denn dann sind ja auch nameserver entsprechend zu informieren =D
im prinzip ist das aber auch durch ein spezielles script möglich.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

4

05.06.2008, 19:11

ok, also z.B. ein root script das

eine datei "rechner-ip-neu" auf die kopiert "rener-ip-alt" (gibt es die für die ip und den rechnernamen)
das docroot-neu über doc-root-alt kopiert
den mysql befehl für den dump aufruft

müsste von einem bestimmten user aufgerufen werden können (bestimmte rechtevergabe mit sudo usw.) ?

5

06.06.2008, 00:34

Mit dem Befehl "man hostname" (beenden mit Q) kannst Du Dir i.d.R. ansehen, wie das auf Deinem System läuft.
(Hier ist eine Online-Version dieser man-page, aber die Infos daruaf sind definitiv distributionsabhängig (!), versionsabhängig und gelten für Dein System wahrscheinlich nicht, daher solltest Du lieber auf dem betroffenen System nochmal ins dort installierte Manual schauen: böse Online-Version. Insbesondere die aufgeführten Dateien sind oft, wie auch bei mir, anders.)

Den MySQL-Dump kann man auch einspielen, wenn man nicht root ist. Auch im MySQL kann man einen speziellen Benutzer dafür anlegen und ihm eingeschränkte Rechte vergeben, so dass er u.a. (!) die Datenbank, mit den Rechten drin ("mysql"), nicht verändern kann. Insbesondere die Rechte FILE, SUPER und GRANT OPTION sollte man nicht bei sowas vergeben, aber auch andere könnten es einem Bösewicht erleichtern.
Es gibt auch die Möglichkeit mysqld in einem chroot laufen zu lassen. Eine entsprechende Kommandozeilenoption sollte bereits vorhanden sein.

Auch beim ersetzen des Document-Root muss man keine root-Rechte haben.

Zum Glück denkt linuxerr an alles. An die Sache mit den Ports habe ich auch gedacht, nur hab' ich's dann total vergessen hinzuschreiben, weil ich ein vergesslicher Depp bin xD
Ähnliches gilt natürlich auch für den MySQL-Port, aber das wird wohl kaum auffallen, da der i.d.R. sowiso 3306 ist bzw. meist nur von wenigen, lokalen Rechnern benutzt wird.

Das Problem, in diesem Fall, insbesondere beim Apache (aber sonst auch z.B. bei MySQL!), ist aber, dass der Benutzer, mit dem der Prozess später läuft, in der Konfigurationsdatei angegeben werden kann, wenn der Daemon zuvor als root (auch andere Benutzer möglich?) gestartet wurde. Je nach Konfiguration können auch andere Gründe als nur der Port vorliegen, die es notwendig machten als root zu starten, aber nur der Port ist wirklich *der* Knackpunkt.
Bei MySQL gibt es da, je nach Konfiguration, mehr Knackpunkte, aber hier möchtest Du ja sowiso nicht die Konfigurationsdatei verändern lassen.

6

06.06.2008, 10:34

Benutzerrechte

Vielen Dank für eure umfangreichen Antworten, da kann (muß) ich als rookie noch ne Menge lernen. Ich glaube, ich kann deshalb auch nicht alles nachvollziehen.
Damit ich s hinbekomm, hier mal mit meinem einfachen Verständnis und eben Gelerntem was ich mir vorstellen könnte:

ich schreibe ein bash-script, das root gehört und in der gruppe ist, in der auch der spezielle user ist und setzte die rechte so, dass dieser user dieses script ausführen darf wenn der fall eintrifft. ("Backup-szenario")

in diesem script (das unter root rechten ausgeführt wird?) kann ich wie ich jetzt gelernt habe leicht mit ifconfig und host die ip und den rechnername ändern.
auspacken eines gesicherten und vorhandenen doc-root.tar auch kein problem. das dump einlesen sollte auch gehen mit mysql -u irgendwer -p usw. das könnte ein extra mysql-user sein (wie gelernt :-) ) der nur den dump dieser db einspielen darf (-> hier muß ich aber nochmal gucken im phpmyadmin. zum schluss noch die httpd.conf.rechnername_neu über die alte httpd.conf kopieren.
dann mach ich dummling nen init 6 im suse. dann rebootet die kiste für alle fälle und alles ist eingelesen und fertig.
alles das wären doch nur ein paar zeilen in diesem script und gut is ?
bin gespannt, bestimmt lacht ihr euch schlapp :-)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »chicken62« (06.06.2008, 10:36)


linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

7

06.06.2008, 12:50

RE: Benutzerrechte

Zitat

Original von chicken62
ich schreibe ein bash-script, das root gehört und in der gruppe ist, in der auch der spezielle user ist und setzte die rechte so, dass dieser user dieses script ausführen darf wenn der fall eintrifft. ("Backup-szenario")

1. auf ein bash-script kann man kein suid-bit setzen, dh wenn darin kommandos enthalten sind, die nur root ausführen darf, dann werden diese kommandos nicht abgearbeitet, wenn ein benutzer das script ausführt!!! root kann solche aufgaben nicht durch ein script übertragen, die der benutzer ausführt. dazu benötigst du eine andere scripttechnik. für einen backup (http-root, etc) ist ein solches root-script auch nicht nötig, sondern nur für die ip/namensänderung. es wäre nicht schlecht, wenn du mal verraten würdest, wozu das gut sein soll, dass ein user sowas ändern darf!

Zitat

in diesem script (das unter root rechten ausgeführt wird?) kann ich wie ich jetzt gelernt habe leicht mit ifconfig und host die ip und den rechnername ändern.

wie gesagt, das geht so nicht.

Zitat

auspacken eines gesicherten und vorhandenen doc-root.tar auch kein problem. das dump einlesen sollte auch gehen mit mysql -u irgendwer -p usw. das könnte ein extra mysql-user sein (wie gelernt :-) ) der nur den dump dieser db einspielen darf

ja, dennmysql hat eine eigene rechteverwaltung (siehe oben, beitrag von oziris)

Zitat

(-> hier muß ich aber nochmal gucken im phpmyadmin. zum schluss noch die httpd.conf.rechnername_neu über die alte httpd.conf kopieren.

httpd.conf und die dokumentenverzeichnisse müsssen nur in bereiche gelegt werden, zu denen der user zugang hat.

Zitat


dann mach ich dummling nen init 6 im suse. dann rebootet die kiste für alle fälle und alles ist eingelesen und fertig.
alles das wären doch nur ein paar zeilen in diesem script und gut is ?
bin gespannt, bestimmt lacht ihr euch schlapp :-)

wozu willst du den rechner rebooten, das ist unfug. in einem linuxsystem kann man jeden dienst einzelnen stoppen und starten. in fast allen distributionen gibt es dazu start/stopp-scripte im verzeichnis /etc/rc.d........
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

8

07.06.2008, 12:27

Benutzerrechte

ok, das bash-script funktioniert aber, wenn ich mit sudo dem user die rechte gebe, dies auszuführen? (das wird dann die nächste baustelle ...)

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

9

07.06.2008, 14:43

RE: Benutzerrechte

Zitat

Original von chicken62
ok, das bash-script funktioniert aber, wenn ich mit sudo dem user die rechte gebe, dies auszuführen? (das wird dann die nächste baustelle ...)


dann kannst du ihm ja auch gleich das root passwort geben!

noch mal die frage, warum soll ein user denn die ip einstellen können?
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

10

07.06.2008, 17:57

AFAIK kann man doch bei sudo genau einstellen, wer was darf:
http://pwet.fr/man/linux/formats/sudoers

Vielleicht geht das damit doch einigermaßen sicher.

11

07.06.2008, 19:45

Benutzerrechte

Hm, verstehe ich nicht ganz. Der user kann das script ausführen, was darin steht kann er machen lassen und nicht mehr. das ist doch was anderes wenn ich ihm das root pw gebe.

das soll der user machen können, um beispielsweise mit diesem rechner einen defekten anderen rechner ersetzen zu können. also muß der auch die ip-nummer bekommen.

das geht also, daß ich via sudo ein root-script ausführen kann, in dem dann andere befehle stehn? und ich muß dann in der Datei /etc/sudoers nur das eine script erlauben ?

12

09.06.2008, 08:00

Ich weiß nicht, ob man bei Scripten auch den Interpreter als root erlauben muss. Wenn das so ist, dann könnte der Benutzer den Interpreter auch ohne das Script als root starten und das wäre bei den gängigen Interpretern eine üble Sicherheitslücke bzw. in Deinem Fall wohl eher eine Gefahr der unbeabsichtigten Zerstörung der Konfiguration; also wenn der Interpreter z.B. die bash wäre, dann könnte man "sudo bash" eingeben und könnte dann einfach als root weiterarbeiten...

Weiß jemand darüber bescheid? Ich kann das grad nicht testen :(

Was aber recht sicher gehen müsste, wäre das einzelne erlauben der Befehle in dem Script. Dann wird das Script nicht als root gestartet, aber darin steht dann z.B. "sudo hostname $1;", dann würde nur dieser Befehl als root ausgeführt.

PS: Ich benutze sudo nur selten, da ich auf den meisten Rechnern entweder der einzige bin, der was als root machen darf oder ich eben gar nix als root machen darf/sollte. Wenn man mir z.B. auf der Arbeit einen root-Zugang geben will, den ich gar nicht brauche, dann bin ich Profi genug, um das abzulehnen.

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

13

09.06.2008, 10:04

die ip-umstellung kann komplett in ein script und das muss per sudoers für den user zur ausführung frei gegeben werden.
dann reicht ein
sudo <pfad_da_hin><scriptname> <parameter>
aus und er kann name und ip ändern.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

14

11.06.2008, 23:38

Benutzerrechte

versteh net, warum er mir bei sudo -l unter root nur den root anzeigt, der alles darf
wenn der user den sudo -l oder den aufruf macht dann kommt sudo: must be set uid root

ich hab den user wohl korrekt in die sudoers eingetragen

15

12.06.2008, 03:31

RE: Benutzerrechte

Die Fehlermeldung Beschreibt genau das Problem:
sudo: must be set uid root = sudo muss so eingestellt sein, dass es mit der Benutzer-ID von root startet.

Im Linux kann man über das Rechte-System eine Datei so markieren, dass sie beim Start mit den Rechten eines anderen Benutzers ausgeführt wird. Das ist hier gemeint.

16

12.06.2008, 08:25

@oziris: Danke. versteh ich das richtig, daß mein sudo also "nicht richtig eingestellt", also verstellt ist und ich dort etwas ändern muß. normalerweise hätte es schon so geklappt? also an irgendeiner sudo-datei was genau wie ? sorry, aber ich bin net so fit mit dem rechte-und benutzersystem

17

12.06.2008, 09:36

Benutzerrechte

ich glaube ich habs kapiert wegen "sudo: must be set uid root"

danke für den satz, genau das ist das problem. da hab ich auf der leitung gestanden. ;-)

habe die user-id on execution von /usr/bin/sudo auf root setzen müssen. das war falsch. jetzt geht es !! :-)

P.S.

ich fürchte, das kommt daher, das ich früher mal einen chmod befehl abgestzt hatte und irrtümlich den pfad nicht richtig ausgeschrieben hatte. da hatte er angefangen mir alles im wurzelverzeichnis auf einen anderen user zu legen, was ich schnell abgebrochen hatte.da ist wohl einiges verbogen. hab danach fast alles wieder dem root zugeordnet. es läuft soweit auch alles problemlos. ist das ok ?

18

12.06.2008, 10:12

Backups machen Tippfehler rückgängig.

19

12.06.2008, 10:35

Benutzerrechte

backups, jaja, sicher dat ... hast schon recht...

ich wills ja hier net überstrapazieren und bin schon heilfroh, daß ich jetzt endlich einen schritt weiter bin. das script macht auch was ich will - soweit sogut.

jetzt fehlt nur noch die letzte meile:

der user soll ja nur das script via sudo anstoßen. ansonsten sollte er am besten g a r n i c h t s sehen und tun dürfen auf dem rechner.

muß ich jetzt bei jeder datei prüfen wie die user-rechte (neben owner und group) für "übrige" sind oder gibt es da einen "Trick" ?

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

20

12.06.2008, 12:27

RE: Benutzerrechte

in der datei /etc/sudoers kannst du genau angeben, welcher user sudo benutzen darf und welche tools,scripte etc er damit starten darf.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

Thema bewerten