.

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: su & sudo

Beitrag von MSfree » 25.11.2016 16:06:30

GhostHacker hat geschrieben:1. Ein bestimmter Benutzer soll nicht ausführen dürfen
Und warum soll er das nicht dürfen? Solange der dass Root-Paßwort nicht kennt, ist es kein Problem su aufzurufen und am Paßwort zu scheitern.
3. Es soll nicht möglich sein via

Code: Alles auswählen

sudo su
SUDOKENNWORT
bzw.

Code: Alles auswählen

sudo su root
SUDOKENNWORT
zu root zu werden.
Och, wenn ich die Kiste hacken wollte und sudo su bzw. sudo su root nicht gehen, würde ich mal sudo bash probieren.

Wenn überhaupt etwas hilft, dann sollte man nicht Rechte mit sudo einschränken, also blacklisten, sondern per whitelisting das erlauben, was der User darf.

Deine Logik ist jedoch irgendwie verquert. Wenn etwas unsicher ist, bzw. unsicher per default konfiguriert ist, dann ist es sudo.

Ich würde sudo deinstallieren, weil mir das Abdichten eines Scheunentores viel zu mühselig ist. su ist dagegen völlig unproblematisch.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22355
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: su & sudo

Beitrag von KBDCALLS » 25.11.2016 16:54:10

GhostHacker hat geschrieben:
Och, wenn ich die Kiste hacken wollte und sudo su bzw. sudo su root nicht gehen, würde ich mal sudo bash probieren.
Argh!! :x

Code: Alles auswählen

sudo bash
kannte ich noch nicht, danke für das aufmerksam machen hierauf.

---------------------------------------------------------------------------------------------------------

Code: Alles auswählen

sudo -i
ist noch einfacher

Man könnte die User die Sudo ausführen dürfen in die Gruppe sudo stecken.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

TomL

Re: su & sudo

Beitrag von TomL » 25.11.2016 17:07:13

GhostHacker hat geschrieben:Das Problem ist su und wie ich unterschiedliche sudo-Rechte für unterschiedliche sudo berechtigte Benutzer einstellen kann, bzw. wie ich mein System ohne sudo administriere, ohne komplett root zu werden...
Entweder in der sudoers dem User/Gruppe explizit die sudo-Befehle erlauben oder -was ich für die bessere Alternative halte- "sudo" deinstallieren und Polkit-Rules erstellen. Um welchen Umfang geht es denn überhaupt...?... was soll der User stellvertretend als root alles ausführen dürfen können?

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: su & sudo

Beitrag von MSfree » 25.11.2016 17:11:41

GhostHacker hat geschrieben:Okay und wie nehme ich dann administrative Aufgaben wahr?
Administrative Aufgaben benötigen oft, wenn nicht sogar fast immer Root-Rechte und die bekommt man mit su und dem dazu gehörigen Root-Paßwort.

Das Voranstellen von sudo vor jeden "Admin"-Befehl ist als Root überflüssig, so daß man auf sudo immer verzichten kann.

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: su & sudo

Beitrag von MSfree » 25.11.2016 17:15:09

GhostHacker hat geschrieben:wie ich mein System ohne sudo administriere, ohne komplett root zu werden...
So etwas wie nicht komplett root gibt es genauso wenig wie nicht komplett schwanger. Ein Programm, das einem für die Zeit, in der das Programm läuft, vorübergehend Root-Rechte gibt (nichts anderes macht sudo) läßt den User für diese Zeit komplett zu Root werden. Es spielt also keine Rolle, ob man nur mal kurz Root wird oder sich einlogt, administriert und auslogt. Root ist Root.

TomL

Re: su & sudo

Beitrag von TomL » 25.11.2016 17:17:25

Es ist aber möglich, einzelne explizit festgelegte Befehle mit root-rechten auszuführen, ohne selber root zu sein. Vielleicht reicht ihm das ja. Kommt halt auf den Umfang an, ob sich der Aufwand lohnt.

inne
Beiträge: 3273
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: su & sudo

Beitrag von inne » 25.11.2016 18:37:15

Probiere doch mal aus was geht. In der standard sudoers steht bei mir nur root und die Gruppe sudo drin. Sonst kann kein Benutzer sudo ausführen.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: su & sudo

Beitrag von Meillo » 25.11.2016 18:45:30

Leute, das Thema su vs. sudo haben wir hier im Forum schon oft genug durchdiskutiert, immer mit dem gleichen Ergebnis, naemlich gar keinem. Also bitte versucht gemeinsam das konkrete Problem zu loesen und lasst die Grundsatzdiskussion aussen vor.
Use ed once in a while!

DeletedUserReAsG

Re: su & sudo

Beitrag von DeletedUserReAsG » 25.11.2016 18:47:19

Welches war noch gleich das konkrete Problem? Bei „sudo so konfigurieren, dass der betreffende User genau das machen kann, was er machen darf (i.e. nicht ›sudo [shell]‹ oder ›sudo su‹, oder auch ›sudo passwd‹ aufrufen) und gut?“ sehe ich kein großes Problem.

TomL

Re: su & sudo

Beitrag von TomL » 25.11.2016 18:51:12

GhostHacker hat geschrieben:Also ich möchte mehrere Benutzer erstellen, die für verschieden administrative Aufgaben zuständig sind.
Die administrative Macht, soll also zu 100% dezentral organisiert sein.
:::
Also zum Beispiel, das ein Benutzer diese Befehle mit sudo ausführen kann, aber eben NUR DIESE Befehle und keine anderen, egal ob er sudo davor stellt oder nicht (und dementsprechen auch nicht mehr root werden kann, durch
Ja, das geht sowohl mit der sudoers als auch mit dem PolicyKit. Ich persönlich bevorzuge das Polkit, weil ich das für das modernere Werkzeug halte. Aber es geht mit beidem... da musst Du Dich halt einarbeiten. Zur sudoers gibt es haufenweise gute HowTo's.
Z.B.:
https://wiki.ubuntuusers.de/sudo/Konfiguration/
https://www.garron.me/en/linux/visudo-c ... ditor.html

TomL

Re: su & sudo

Beitrag von TomL » 25.11.2016 19:05:57

GhostHacker hat geschrieben:Und jeder dieser Benutzer hat natürlcih sein eigenes sudo-Passwort.
Nein, sie behalten dabei ihr eigenes Password. Der Anwender wird nur berechtigt, ein bestimmtes Programm mit root-Rechten zu starten. Der Anwender selber wird dabei nicht root und hat auch keine weitergehenden Rechte als zuvor.

TomL

Re: su & sudo

Beitrag von TomL » 25.11.2016 19:50:50

GhostHacker hat geschrieben:Bedeutet, wenn ich nun den Benutzer operator erstelle und in der sudoers-Datei

Code: Alles auswählen

operator ALL= /sbin/poweroff
einfüge, dann kann der Benutzer operator NUR diesen Befehl mit root-Rechten ausführen korrekt?
Ja, .... aber probiers einfach aus... vielleicht nicht gerade mit poweroff, sondern mit was harmlosen, wie

Code: Alles auswählen

/usr/bin/touch /opt/xTouchTestx
Das legt ne leere Datei an... der normale Benutzer hat dazu kein Recht.
Kann dieser Benutzer dennoch mittels sudo su oder sudo su root zu root werden? Bzw. eine root-Shell öffnen mit sudo bash, oder sudo -i?
Nein... aber wie gesagt... am besten, Du probierst es einfach und prüfst, was geht und was nicht geht.

TomL

Re: su & sudo

Beitrag von TomL » 25.11.2016 20:41:23

GhostHacker hat geschrieben:Wenn ich das so

Code: Alles auswählen

# User privilege specification
test	ALL=/usr/bin/touch /opt/xTouchTestx
in der sudoers-Datei stehen habe, und ausserhalb des home-Verzeichnises von Benutzer test

Code: Alles auswählen

sudo touch TESTDATEI
ausführe, erscheint:

Code: Alles auswählen

Leider darf der Benutzer test »/usr/bin/touch TESTDATEI« als root auf COMPUTERNAME nicht ausführen.
Ja richtig! Der User kann ganz genau nur diesen Befehl als root absetzen:

Code: Alles auswählen

/usr/bin/touch /opt/xTouchTestx
Deine Variante

Code: Alles auswählen

sudo touch TESTDATEI
des Aufrufes entspricht nicht dem, was der Admin in der sudoers erlaubt hat. Deshalb die Fehlermeldung.

Der Eintrag in der sudoers

Code: Alles auswählen

test	ALL=/usr/bin/touch
bedeutet, dass der User ÜBERALL mit touch und root-recht eine leere Datei anlegen kann. Ob er damit auch eine bestehende Datei "leeren" kann... das musst Du mal mit einem Test herausfinden. Allerdings solltest Du nicht versuchen, ne wichtige Datei zu "leeren" *lol*

TomL

Re: su & sudo

Beitrag von TomL » 25.11.2016 21:19:08

Das mit dem "leeren" vergiss einfach. touch legt eine leere Datei an.... aber er tut es nicht, wenn die Datei schon besteht. Würde das funktionieren, würde eine bestehende Datei mit gleichem Namen als leere Datei überschrieben werden. Aber wie gesagt, das geht wohl nicht.
GhostHacker hat geschrieben:Mir fällt zudem gerade auf, das mein Benutzer test garnicht in der Gruppe sudo ist, obwohl er doch jetzt einen Befehl mit sudo ausführen kann...
Wofür ist diese Gruppe denn dann gut?

Code: Alles auswählen

 %sudo     ALL = (ALL) ALL
 %users    ALL = NOPASSWD: /usr/sbin/IRGENDEINSKRIPT
Man kann auch Gruppen in der sudoers verwenden. Und heute wird in den Desktop-Environments die Gruppe "sudo" auch vermehrt in den Polkit-Rules verwendet.... aber das darf ich ja eigentlich wieder nicht sagen. Allerdings bin ich sowieso der falsche für eine sachkundige Untestützung, weil ich bekanntermaßen sudo nicht auf meiner Freundesliste stehen habe :mrgreen: Probier einfach ein bissen rum... das ist eigentlich leicht verständlich und wirklich kein Hexenwerk. Probiere es mit harmlosen Befehlen aus, die nix kaputt machen. Ein einfacher Trick ist z.B. ein kleines Bashscript, welches nur nano aufruft. Mit diesem Script kann man die sudoers prima testen. Aber da das ein Editor ist und falls Du Parameter testen willst, dann nur wieder mit eigenen unwichtigen Textfiles aus dem Homedir.

uname
Beiträge: 12046
Registriert: 03.06.2008 09:33:02

Re: su & sudo

Beitrag von uname » 25.11.2016 22:17:42

Ich wollte noch eben ein paar Sätze zu einem Zitat weiter oben schreiben:

Es ging darum, dass jemand per su nicht zu einem anderen Benutzer werden soll/darf, um dann mit sudo einen Befehl als root auszuführen.
Weiter steht dort:
Sprich er braucht nicht das root-Passwort (falls es existiert), sondern nur das Passwort des Benutzers der in der sudoers-Datei steht.
Dazu wollte ich nur sagen, dass wenn man das Passwort eines andere Benutzers kennt, kann man sich natürlich auch direkt am System mit dem Benutzer und dem Passwort anmelden (falls nicht zusätzlich durch z.B. SSH-Keys verboten). Somit ist der Versuch der Einschränkung von su ziemlich sinnlos und auch kaum umsetzbar (evtl. über /etc/pam.d/su).

Insgesamt ist die ganze su/sudo-Diskussion nicht zielführend. Bei su wechselt man einfach die Identität so ähnlich wie wenn man sich anmelden würde. Hierfür braucht man das Passwort des Ziel-Benutzers. Bei sudo handelt es sich um ein suid-root-Befehl, der über /etc/sudoers dem jeweiligen Benutzer nach Engabe des Passworts des Quellbenutzers eine gewisse Anzahl von Befehlen zusichert. Diese können sehr sinnlos los (siehe Ubuntu-Konfiguration) oder auch recht gut (einzelne Befehle). Darüber aber z.B. su oder beliebige Befehle zu erlauben ist meistens ziemlich sinnfrei.

geier22

Re: su & sudo

Beitrag von geier22 » 26.11.2016 14:20:30

GhostHacker hat geschrieben: Er könnte zu einem Benutzer wechseln der in der sudoers-Datei steht.
Sprich er braucht nicht das root-Passwort (falls es existiert), sondern nur das Passwort des Benutzers der in der sudoers-Datei steht.
Dazu müsste der User aber doch erst mal das root -PW kennen. Denn sonst kann er die Datei nicht öffnen / lesen.

Code: Alles auswählen

-r--r-----  1 root root      742 Jun 22 20:45 sudoers
Aber vielleicht wäre es hilfreich, darzulegen, was du genau erreichen willst. Da ja jemand die Privilegien vergeben muss (ich nehme an, dass du das bist) solltest du mal darlegen, was die anderen Nutzer können sollen. Dann könnte man konkret überlegen, was zu tun ist. Sonst bleibt das nur eine allgemeine Diskussion über sudo, die keinem so recht weiterhilft. Aber das hat uname ja schon genauer ausgeführt.

wanne
Moderator
Beiträge: 7448
Registriert: 24.05.2010 12:39:42

Re: su & sudo

Beitrag von wanne » 26.11.2016 15:25:35

@TomL und co. bitte lasst bitte die Empfehlungen auf security zeug von dem ihr wenig Ahnung habt. Das geht in die Hose.
GhostHacker hat geschrieben:1. Ein bestimmter Benutzer soll nicht ausführen dürfen
Dafr gibt es klassischerweise die Gruppe wheel. (Wahlweise auch passwortlos.) Ich finde aber eigentlich, dass keiner, der nicht root werden sollte das root Passwort haben sollte. Entsprechend wird das heute eher selten genutzt.
GhostHacker hat geschrieben:ausführt, soll dieser nur ein bestimmtes, weitreichendes Maß an root-Rechten bekommen.
Das ist ein Wiederspruch in sich. root-Rechte heißt eben alles zu dürfen. Du kannst beliebigen anderen Nutzern (oder Gruppen) weitestgehend beliebige (erweiterte) Rechte geben. Aber root darf nun mal alles. Das ist die Idee hinter root.
Um das nochmal z verdeutlichen hier eine Erklärung zu sudo.
GhostHacker hat geschrieben:Kann ich root übrigens einfach aus der sudoers-Datei entfernen, um keinen allmächtigen Herrscher mehr zu haben?
Nein.
root gab es schon immer (Also immer ist seit 1970 oder Unix Time 0 ;-) ). Ihm ist das alles dürfen immanent.
Alle anderen Benutzer haben nur eigeschrenkte definierte Rechte + die Rechte, die sie durch ihre Gruppen bekommen.
sudo ist dagegen ein relativ neues Tool.
sudo erlaubt Befehle unter einem anderen Benutzer auszuführen. Das muss nicht root sein. Per default ist es aber root.
Führst du einen Befehl unter root aus (der alles darf) darfst du das immer.
Ich habe gerade gelesen es gibt auch noch sudo sh... :?
So und hier ein Script, dass dir beliebige viele Befehle ausgibt, die dir ne root shell geben.

Code: Alles auswählen

R=1; while true; do R=$((R+1)); echo "cp /bin/dash ./$R && sudo ./$R"; done
Du wirst niemals alle solche befehle blacklisten können. (Siehe auch Satz von Rice)
Entsprechen willst du eben bestimmte sehr begrenzte Rechte an andere User verteilen niemals root rechte irgend wie einschränken.
Klassisch macht man das mit Dateirechten und Gruppen. Moderner ist das Zusammenspiel aus dbus und polkit. sudo klinkt schön ist aber praktisch nicht zu kontrollieren.
Keinen kaum Anwendungen, wo das wirklich sinnvoll eigesetzt ist. Allenfalls zu Dokumentationszwecken.
Guck dich vor allem mal um, was es schon gibt. Z.B. Updates einspielen kann man mit diversen Grafischen tools als User erreichbar machen…
Und sei extrem vorsichtig mit Eigenbauten. Ein mal UID 0 heißt praktisch immer dass man auch für immer alles darf.
Gib mir die Möglichkeit Software zu installieren und ich gebe dir eine Rootshell (Ich installiere einfach ein su ohne passwortabfrage oder ein telnet mit festem Passwort…)
Sorry, aber wer global Software installieren darf ist einfach King und darf alles. PUNKT.
Alle die anderes Behaupten haben einfach keine Ahnung, davon, wie ein Rechner funktioniert.
Gib mir nano als root und ich gebe dir eine Rootshell (Einfach aus su die Passwortabfrage rauslöschen.)
Viele sachen die sich erstmal harmlos anhören eröffnen mit etwas Phantasie Millionen von Möglichkeiten alles mögliche andere zu machen.
Wie gesagt für die aller meisten Sachen, wo das sinnvoll geht, gibt es weit verbreitete Wege, wie man das bestimmten Nutzern zugänglich macht.
Wenn irgend was wirklich nur als root geht dann zu 99% aus dem Grund weil es eben indirekt impliziert, dass du damit sowieso auch beliebiges anderes machen kannst. Und er deswegen eh quasi root-rechte hat.
Und das wirst du nicht ändern können. (Und jeder der anderes behauptet, und sagt man könnte das doch irgend wie einschränken hat keine Ahnung oder lügt.) Solche aufgaben musst du dann halt an vertrauenswürdige Personen vergeben.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: su & sudo

Beitrag von Meillo » 26.11.2016 16:18:40

Soweit ich das verstanden habe, will der Fragende moeglichst gar kein root mehr verwenden, sondern alles ueber separate User-Accounts abwickeln. Teilweise ist das moeglich, z.B. ist es unnoetig zum Lesen von Logfiles root zu sein. Da kann man einfach die passenden Gruppen zuweisen und die Sache ist erledigt. Fuer manche anderen Aufgaben ist in Unix aber root noetig, z.B. zum Zuruecksetzen eines fremden Passworts oder zum Installieren von Software. Wenn du das nun dadurch loesen willst, dann du einen bestimmten User diese Befehle als root ausfuehren laesst, dann loest das das eigentliche Problem nur halb, weil, wie wanne schoen dargelegt hat, der User beim Ausfuehren dieses Befehls root ist und sich daraus meist kreative Wege ergeben um eine root-Shell zu erlangen.

Ich sehe verschiedene Moeglichkeiten fuer dich, damit es hier voran geht:

1) Nimm Plan9 statt Unix, dann hast du das root-Problem so geloest wie du es geloest haben willst.

2) Erstelle eine Liste aller gewuenschter Accounts und der Dinge die sie duerfen sollen, dann koennen wir dir helfen, erstens, diese Liste Korrektur zu lesen und, zweites, dabei wie du sie in deinem System implementierst (mit Gruppen, sudo, Polkit, etc.).

3) Du denkst dir ``was soll's!'' und machst es wie alle anderen auch. ;-)


Bislang macht der Thread den Anschein, dass es um die Option 2 geht. Es waere dafuer nun noetig, dass du konkreter wirst ... und dass wir anderen uns dann ebenfalls auf den konkreten Weg begeben. Wie schon oben geschrieben, Grundsatzdiskussionen sind zwar auch nett (und sie lassen die Nachzuegler aufholen), aber mit ihnen geht es nicht voran (was meiner Wahrnehmung nach das Ziel des Fragenden ist).
Use ed once in a while!

guennid

Re: su & sudo

Beitrag von guennid » 26.11.2016 17:13:28

@Meillo

Wow!!! :THX:

TomL

Re: su & sudo

Beitrag von TomL » 26.11.2016 20:14:37

wanne hat geschrieben:@TomL und co. bitte lasst bitte die Empfehlungen auf security zeug von dem ihr wenig Ahnung habt. Das geht in die Hose.
Das war aber jetzt nicht sehr nett, dass Du die "Liste" mit mir beginnen lässt... ganz besonders vor dem Hintergrund, das Du meine grunsätzliche Meinung zu dem Thema im Wesentlichen sogar teilst:
wanne hat geschrieben:Du wirst niemals alle solche befehle blacklisten können.
:::
Moderner ist das Zusammenspiel aus dbus und polkit. sudo klinkt schön ist aber praktisch nicht zu kontrollieren.
Nur wurde ich für meine 2 Hinweise auf das Polkit sofort angezählt. Und sudo wie beschrieben ist tatsächlich nicht zu kontrollieren, weil es zudem auch noch eine Wechselwirkung zum Polkit gibt.... beide verwenden die gleiche Gruppe. Ich will da jetzt auch nicht drauf rumreiten oder ne neue Diskussion lostreten, aber mich interessiert, warum es nicht OK sein soll über die "sudoers" explizit zu whitelisten, wenn jemand unbedingt an "sudo" festhalten will. Blacklisten geht nicht, das ist mir klar, aber warum soll "whitelisten" in der sudoers schlechter sein, als übers polkit? Die User haben damit ebenfalls keine root-Rechte.

wanne
Moderator
Beiträge: 7448
Registriert: 24.05.2010 12:39:42

Re: su & sudo

Beitrag von wanne » 27.11.2016 15:51:19

TomL hat geschrieben:Das war aber jetzt nicht sehr nett, dass Du die "Liste" mit mir beginnen lässt...
Sorry, das war wirklich nicht böse gemeint. Aber du hast selbst gesagt, dass du wenig von sudo weißt. Und hast aber ausführliche und ansonsten sonst relativ fundierte Kommentare geschrieben.
TomL hat geschrieben:Nur wurde ich für meine 2 Hinweise auf das Polkit sofort angezählt.
Ganz im Gegenteil fände ich es wirklich sinnvoll, wenn du dazu was schreiben könntest. Da kenne ich mich eben nicht genug aus, um da irgend welche Tipps geben zu wollen.
TomL hat geschrieben:warum es nicht OK sein soll über die "sudoers" explizit zu whitelisten, wenn jemand unbedingt an "sudo" festhalten will. Blacklisten geht nicht, das ist mir klar, aber warum soll "whitelisten" in der sudoers schlechter sein, als übers polkit?
sudo ist auch für Leute ohne viel Ahnung einfach zu nutzen hat aber derartig viele sicherheitstechnische Stolperfallen die nicht so einfach zu umgehen sind und auch nicht von anfang an ersichtlich sind.
Geärgert hat mich deswegen vor allem das:
Probier einfach ein bissen rum... das ist eigentlich leicht verständlich und wirklich kein Hexenwerk. Probiere es mit harmlosen Befehlen aus, die nix kaputt machen. Ein einfacher Trick ist z.B. ein kleines Bashscript, welches nur nano aufruft.
Ich denke es ist eben für GhostHacker nicht absehbar, was es bedeutet einen interaktiven Editor als root zu haben.
Genausowenig wie die wenige wissen, was man mit Eviroment Variablen wie PYTHONPATH o.ä. anfangen kann, oder das so ein * Wildcard auch ein && beinhaltet. Interaktivität mit Übernahme der Enviroment und FDs wird von Leuten die es nicht besser wissen einfach extrem unterschätzt. Sie bekommen die ein zwei Standardbeispiele (LD_PRELOAD) und denken, wenn man das verhindert hat es sich.
Genau so wie Wildcards und Shell sich extrem schlecht vertragen. Wer da drauf gekommen ist, gehört geschlagen.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten