expertenaustausch > linux.debian.user.german

Hilmar Preuße (05.02.2019, 11:50)
Am 04.02.2019 um 23:29 teilte H.-Stefan Neumeyer mit:

Moin,

> Nicht für ungut - Ich persönlich haben jedenfalls eine tiefe
> Abneigung gegen "sudo" in allen Ausführungen entwickelt. Kannst Du das auch rational begründen?


Hilmar, seit 3-4 Jahren Fan von sudo.
Stefan Baur (05.02.2019, 12:00)
Am 05.02.19 um 10:48 schrieb Hilmar Preuße:
>> Nicht für ungut - Ich persönlich haben jedenfalls eine tiefe
>> Abneigung gegen "sudo" in allen Ausführungen entwickelt.

> Kannst Du das auch rational begründen?
> Hilmar, seit 3-4 Jahren Fan von sudo.


Ich möchte mich da auch mal vorsichtig als "pro sudo" outen. Auch wenn
ich mich noch oft beim "sudo -i" erwische.

Meiner Meinung nach muss man halt erst mal das Konzept von sudo
verstanden haben. Das dauert ein bisschen. Aber wenn es dann "Klick"
gemacht hat, ist das ungefähr so, wie das erste Mal einen Tesserakt
rotieren zu sehen. <https://de.wikipedia.org/wiki/Datei:8-cell-simple.gif>

Gruß
Stefan
Jakobus Schürz (05.02.2019, 14:10)
Am 05.02.19 um 10:52 schrieb Stefan Baur:
> Am 05.02.19 um 10:48 schrieb Hilmar Preuße:
> Ich möchte mich da auch mal vorsichtig als "pro sudo" outen. Auch wenn
> ich mich noch oft beim "sudo -i" erwische.
> Meiner Meinung nach muss man halt erst mal das Konzept von sudo
> verstanden haben. Das dauert ein bisschen. Aber wenn es dann "Klick"
> gemacht hat, ist das ungefähr so, wie das erste Mal einen Tesserakt
> rotieren zu sehen. <https://de.wikipedia.org/wiki/Datei:8-cell-simple.gif>


Ich verstehe die grundsätzliche Abneigung gegen sudo auch nicht, die
hierzulists (und nicht nur hier) gerne gepflegt wird...

Wir haben in der Firma früher alle root-Zugang auf unsere Server gehabt.
Man wusste nie, wer was gemacht hat.
Dann wurde auf personal-Login umgestellt. Man meldet sich als eigener
User am Server an, und mittels sudo führt man dann die gewünschten
Befehle aus.

Auditd loggt für jeden User getrennt mit, wer was gemacht hat. Auch die
sudo-Befehle für diesen User.

Damit ist klar nachvollziehbar, wenn jemand einen Server abgeschossen
hat, wer das wie gemacht hat.  Mit einem root-Zugang geht sowas nicht.
Mit su auch nicht.

lg jakob
Peter Funk (05.02.2019, 15:00)
Mahlzeit,

Ursprünglich von "H.-Stefan Neumeyer" geschrieben:
> >> Nicht für ungut - Ich persönlich haben jedenfalls eine tiefe
> >> Abneigung gegen "sudo" in allen Ausführungen entwickelt.


> Am 05.02.19 um 10:48 fragte Hilmar Preuße:
> > Kannst Du das auch rational begründen?
> > Hilmar, seit 3-4 Jahren Fan von sudo. Stefan Baur schrieb am Dienstag, den 05.02.2019 um 10:52:

> Ich möchte mich da auch mal vorsichtig als "pro sudo" outen. Auch wenn
> ich mich noch oft beim "sudo -i" erwische.


sudo mit der Option -i ist genauso ?böse? wie "sudo su-" ?:
Dann könntest Du Dich auch gleich als "root" einloggen.

Ich beschreibe mal, was an und warum ich "sudo" gut finde:

Wichtig wird der Unterschied dann, wenn mehrere Personen
Zugriff auf das oder die Systeme haben (z.B. in Vereinen
oder Unternehmen). sudo protokolliert jeden einzelnen Befehl.

Meiner Meinung nach wird es bei konsequentem Einsatz von sudo
dann deutlich schwieriger, forensische Beweise für unerlaubte
System- und damit Daten-Manipulationen verschwinden zu lassen.

Um dies möglichst schwierig zu machen, empfehle ich folgende
flankierende organisatorische Maßnahmen:

1. Alle sudo-Aktivitäten werden durch geeignete Konfiguration
des syslog über das interne Netz geloggt (siehe man syslog.conf).

2. Im jeweiligen Intranet wird ein dezidierter Recher als reiner
syslog server betrieben. Dieser Rechner lauscht nur mit dem
UDP-Port 514 (syslog) am Netz und hat auch nur eine einzige
Aufgabe: Die syslog-Nachrichten aus dem Netz manipulationssicher
zu speichern.

3. Häufig wird für die auf dem syslog server aufgelaufenen
Logfiles mit ein kryptografischer Hash erzeugt (das ist dann
sozusagen eine Art "arme Leute Blockchain" ?). Wir verwenden
nun traditionell sha256sum, nachdem vor inzwischen mehr als einer
Dekade md5 als für diesen Zweck nicht mehr geeignet erschien.

4. Regelmäßig werden diese Logfiles zusammen mit den Hashes
so auf optische Medien (z.B. DVD) gebrannt, dass sie auch physisch
nicht mehr nachträglich geändert werden können.

5. Kopien dieser Log-Archive werden an mehreren verschiedenen
physikalischen Orten gelagert. Niemand sollte alle diese Orte
gleichzeitig kennen.

Liebe Grüße, Peter Funk
Stefan Baur (05.02.2019, 15:00)
Am 05.02.19 um 13:09 schrieb Peter Funk:
> Stefan Baur schrieb am Dienstag, den 05.02.2019 um 10:52:
>> Ich möchte mich da auch mal vorsichtig als "pro sudo" outen. Auchwenn
>> ich mich noch oft beim "sudo -i" erwische.

> sudo mit der Option -i ist genauso ?böse? wie "sudo su -" ?:
> Dann könntest Du Dich auch gleich als "root" einloggen.


Deswegen sprach ich ja von "mich selbst erwischen".
Es ist meistens eine Frage der Bequemlichkeit; Wenn ich von vornherein
weiß, dass ich mehr als nur eine Handvoll Befehle als root absetzen
muss, dann lockt das "sudo -i".

Gruß
H.-Stefan Neumeyer (05.02.2019, 16:40)
Am Dienstag, den 05.02.2019, 10:48 +0100 schrieb Hilmar Preuße:

Hallo Hilmar
> > Nicht für ungut - Ich persönlich haben jedenfalls eine tiefe
> > Abneigung gegen "sudo" in allen Ausführungen entwickelt.

> Kannst Du das auch rational begründen? Ich präzisiere mal meine Aussage etwas?


sudo ist ein mächtiges Werkzeug, das aber einiges an Hintergrundwissen,
Systemkenntnis, Erfahrung und natürlich Verantwortungsbewustsein
verlangt.
In der Form, wie es heute von weit verbreiteten Distributionen verwendet
wird, um praktisch jeden pauschal einen Zugang zur Verwaltung des
Systems zu verschaffen (Ubuntu und seinen Ab- und Unterarten, beim Raspi
z.B. sogar gänzlich ohne Paßwort), ist es sicher nie gedacht gewesen.
Und es kann auch kreuzgegfährlich werden, wenn der Anwender die eingangs
genannten Bedingungen nicht erfüllen kann, oder will.
Das kurioseste Erlebnis, das ich damit hatte, war eine Zeitgenosse, der
(nach dem er sich mehr oder weniger erfolgreich ein Ubuntu-Image auf den
Rechner gepackt hatte) nach einiger Zeit Platz schaffen wollte, darum
den Dateimanager mit sudo aufgerufen hat - und alles gelöscht hat was
älter als ein bestimmtes Datum war. Die Folgen - naja?
Schuld war für diesen Jugendfreund, der seine Installation damit zu
Grunde gerichtet hatte, damals auch nicht er selbst. Es war natürlich
"Linux".

Also:
Wenn sudo mit Verantwortung und zur Erfüllung speziell definierter
Aufgaben der Adminstration verwendet wird, und die Leute auch mit
umgehen können, habe ich eigentlich kein Problem.
Wenn aber damit nach außen nur pauschal die Verwaltung eines Linux-
Rechners als "einfach" dargestellt und praktiziert wird, dann habe ich
viele.
Marc Haber (05.02.2019, 19:30)
On Tue, 05 Feb 2019 15:34:18 +0100, "H.-Stefan Neumeyer"
<hsn.debian_user> wrote:
>In der Form, wie es heute von weit verbreiteten Distributionen verwendet
>wird, um praktisch jeden pauschal einen Zugang zur Verwaltung des
>Systems zu verschaffen (Ubuntu und seinen Ab- und Unterarten, beim Raspi
>z.B. sogar gänzlich ohne Paßwort), ist es sicher nie gedacht gewesen.


Das ist die einfachste Verwendung und sie ist genauso legitim wie mit
ausgearbeiteten Regeln. Die meisten heutigen Distributionen haben eine
Gruppe 'sudo' und wer dort Mitglied ist, darf sudo zu jedem für alles.
Das ist nicht "praktisch jedem".

>Und es kann auch kreuzgegfährlich werden, wenn der Anwender die eingangs
>genannten Bedingungen nicht erfüllen kann, oder will.
>Das kurioseste Erlebnis, das ich damit hatte, war eine Zeitgenosse, der
>(nach dem er sich mehr oder weniger erfolgreich ein Ubuntu-Image auf den
>Rechner gepackt hatte) nach einiger Zeit Platz schaffen wollte, darum
>den Dateimanager mit sudo aufgerufen hat - und alles gelöscht hat was
>älter als ein bestimmtes Datum war. Die Folgen - naja?


Und das hätte su - verhindert?

>Also:
>Wenn sudo mit Verantwortung und zur Erfüllung speziell definierter
>Aufgaben der Adminstration verwendet wird, und die Leute auch mit
>umgehen können, habe ich eigentlich kein Problem.
>Wenn aber damit nach außen nur pauschal die Verwaltung eines Linux-
>Rechners als "einfach" dargestellt und praktiziert wird, dann habe ich
>viele.


Kann ich nicht nachvollziehen.

Grüße
Marc
Sebastian Suchanek (07.02.2019, 19:50)
Am 05.02.2019 um 13:09 schrieb Peter Funk:
> Stefan Baur schrieb am Dienstag, den 05.02.2019 um 10:52:
> sudo mit der Option -i ist genauso ?böse? wie "sudo su -" ?:
> Dann könntest Du Dich auch gleich als "root" einloggen.
> Ich beschreibe mal, was an und warum ich "sudo" gut finde:
> Wichtig wird der Unterschied dann, wenn mehrere Personen
> Zugriff auf das oder die Systeme haben (z.B. in Vereinen
> oder Unternehmen). sudo protokolliert jeden einzelnen Befehl.
> [...]


Ich gehöre zwar nicht zu den ursprüngliche Fragestellern, aber auch mir
war bislang der "Hype" im sudo nicht wirklich klar. Deine Erklärungen
sind für mich aber sehr gut nachvollziehbar, von daher danke dafür.

Allerdings habe ich daraus auch geschlossen, dass sudo für mich effektiv
- wie schon bisher vermutet - keine wirklichen Vorteile bringt. Meine
Debian-Kisten sind samt und sonders Server im weiteren Sinn, also keine
Desktops. D.h. in der Praxis, dass ich mich dort eigentlich auch nur
einlogge, um irgendwelche administrativen Tätigkeiten durchzuführen, für
die ich oft sowieso root-Rechte brauche. Zudem bin ich für alle Kisten
alleine verantwortlich, brauche also die "Traceability" nicht.
Von daher kann ich auch in Zukunft wie gehabt einfach einen direkten
root-Login verwenden.

Tschüs,

Sebastian
Peter Funk (08.02.2019, 12:50)
Hallo Sebastian,

Sebastian Suchanek schrieb am Donnerstag, den 07.02.2019 um 18:45:
> Allerdings habe ich daraus auch geschlossen, dass sudo für mich effektiv
> - wie schon bisher vermutet - keine wirklichen Vorteile bringt. Meine
> Debian-Kisten sind samt und sonders Server im weiteren Sinn, also keine
> Desktops. D.h. in der Praxis, dass ich mich dort eigentlich auch nur
> einlogge, um irgendwelche administrativen Tätigkeiten durchzuführen, für
> die ich oft sowieso root-Rechte brauche. Zudem bin ich für alle Kisten
> alleine verantwortlich, brauche also die "Traceability" nicht.
> Von daher kann ich auch in Zukunft wie gehabt einfach einen direkten
> root-Login verwenden.


Es kann irgendwann passieren, dass auf einem Deiner Server
?etwas seltsames? passiert ist. Selbst wenn Du dann nur ein
ganz kleines bißchen nicht sicher bist, ob nicht doch jemand
anders als Du als "root" auf Deinem Server herum gefummelt hat:
Es könnte sein, dass Du dann plötzlich Logfiles vermissen wirst.

Alternativer Tipp: Wenn Du "sudo" nicht benutzen möchtest,
dann füge folgende Zeilen zu Deinen /root/.bashrc Dateien hinzu:

if [ -z "$HISTTIMEFORMAT" ]
then export HISTTIMEFORMAT="%F %T "
fi
# credit : Lars Michelsen (von dem habe ich das irgendwann abgeschrieben)
if [ -z "$HISTSIZE" ] || [ $HISTSIZE -lt 1024 ]
then export HISTSIZE=100000
fi
if [ -z "$HISTFILESIZE" ] || [ $HISTFILESIZE -lt 2048 ]
then export HISTFILESIZE=200000
fi

So werden wenigstens die Shell-Aktivitäten des "root" in der
/root/.bash_history aufbewahrt. Wenn Du es noch sicherer machen
willst, dann kannst Du zusätzliche Vorkehrungen treffen, damit
sich Einträge in .bash_history von zeitgleich laufenden Shells
nicht gegenseitig überschreiben. Ich persönliche benutze
dafür den Namen des Pseudo-Terminals, auf dem die Shell läuft.
Diesen kann man sich z.B. mit dem folgenden Befehl beschaffen:

TTY=`python -c "import os, sys; print os.ttyname(sys.stdin.fileno())[5:]"`

Wie sich daraus dann Dateinamen für die Variable HISTFILE
konstruieren lassen, überlasse ich mal als Übungsaufgabe
den diese E-Mail Lesenden, damit ich hier nicht meine gesamten
".bashrc"-Modifikationen posten muss.

Falls Du so paranoid wie ich bist, dann betreibst Du auf Deinen
Servern zusätzlich noch ein HIDS wie z.B. "samhain" von Rainer
Wichmann. Aber das ist dann gleich wieder ein ganz anderes Thema.

Liebe Grüße, Peter Funk
Jochen van Geldern (08.02.2019, 13:50)
Am Fri, 8 Feb 2019 11:44:57 +0100
schrieb Peter Funk <pf>:

> dafür den Namen des Pseudo-Terminals, auf dem die Shell läuft.
> Diesen kann man sich z.B. mit dem folgenden Befehl beschaffen:
> TTY=`python -c "import os, sys; print
> os.ttyname(sys.stdin.fileno())[5:]"` Das beschaffen des Pseudo-Terminals geht zu mindest mit bash einfacher:


TTY=`tty`

Fertig.
Marc Haber (10.02.2019, 11:40)
On Thu, 07 Feb 2019 18:45:11 +0100, Sebastian Suchanek
<sebastian.suchanek> wrote:
>Allerdings habe ich daraus auch geschlossen, dass sudo für mich effektiv
>- wie schon bisher vermutet - keine wirklichen Vorteile bringt. Meine
>Debian-Kisten sind samt und sonders Server im weiteren Sinn, also keine
>Desktops. D.h. in der Praxis, dass ich mich dort eigentlich auch nur
>einlogge, um irgendwelche administrativen Tätigkeiten durchzuführen, für
>die ich oft sowieso root-Rechte brauche. Zudem bin ich für alle Kisten
>alleine verantwortlich, brauche also die "Traceability" nicht.
>Von daher kann ich auch in Zukunft wie gehabt einfach einen direkten
>root-Login verwenden.


Ich schrieb dazu gerade eine längere Antwort an Martin; du darfst
meine Argumente dort gerne nachlesen und sie dann weiter ignorieren.

Grüße
Marc
Peter Funk (11.02.2019, 13:40)
Hallo Jochen,

Jochen van Geldern schrieb am Freitag, den 08.02.2019 um 12:46:
> Am Fri, 8 Feb 2019 11:44:57 +0100
> schrieb Peter Funk <pf>:
> Das beschaffen des Pseudo-Terminals geht zu mindest mit bash einfacher:
> TTY=`tty`
> Fertig.


Stimmt! Danke für den Tipp, Jochen! Das ist tatsächlich etwas einfacher.

Jedoch brauche ich noch das Abtrennen des führenden
"/dev/" vom Pfadnamen. Das ginge dann z.B. so:
TTY=`tty | sed 's/\/dev\///'`
oder so:
TTY=`tty | cut -b 6-`
Das ist trotzdem noch kürzer.

Als ich den in meinem vorigen Beitrag beschriebenen
Python-Befehl ausgetüftelt hatte, gab es den Befehl "tty"
aus dem Paket "coreutils" entweder noch nicht oder ich war
damals einfach nicht in der Lage, ihn zu finden. Es kann
auch sein, dass wir damals neben Linux auch noch Sun Solaris
und SGI Irix verwendet haben und ich es auf allen Systemen
einheitlich haben wollte. Daran kann ich mich heute leider
gar nicht mehr erinnern. Ich werde doch langsam alt. ?

Liebe Grüße, Peter Funk
Alexander Reichle-Schmehl (11.02.2019, 14:10)
Hi!

Am 2019-02-08 12:46, schrieb Jochen van Geldern:

> Das beschaffen des Pseudo-Terminals geht zu mindest mit bash einfacher:
> TTY=`tty`
> Fertig.


reichleal@XXXX:~$ which tty
/usr/bin/tty
reichleal@XXXX:~$ dpkg -S $(which tty)
coreutils: /usr/bin/tty

Das sollte nicht nur in der bash funktionieren :)

Mit besten Grüßen,
Alexander
Stefan Krusche (11.02.2019, 18:10)
Am Samstag, 9. Februar 2019 schrieb Peter Funk:

> Jedoch brauche ich noch das Abtrennen des führenden
> "/dev/" vom Pfadnamen. Das ginge dann z.B. so:
> TTY=`tty | sed 's/\/dev\///'`
> oder so:
> TTY=`tty | cut -b 6-`
> Das ist trotzdem noch kürzer.


Das funktioniert sicher, aber wenn Du nicht nur eine alte Bourne Shell
benutzt, und da auf Debian immer Bash zur Verfügung steht, würde ich
folgendes vorschlagen. Das ist noch einfacher, noch kürzer und ohne den
Aufruf externer Unix Programme:

Diese Syntax für command substitution wird heutzutage empfohlen [1]:

TTY=$(tty)

Man kann den Aufruf von sed oder cut in einer weiteren subshell vermeiden
durch parameter expansion, hier [2] sehr übersichtlich erläutert.

Entfernt alles "*", von links ("##") bis zum letzten "/":

TTY=${TTY##*/}

$ tty
/dev/pts/5
$ TTY=$(tty)
$ echo $TTY
/dev/pts/5
$ echo ${TTY##*/}
5

Freundlichen Gruß,
Stefan

[1]
[2]
Spiro Trikaliotis (11.02.2019, 22:30)
Hallo Peter,

* On Sat, Feb 09, 2019 at 11:53:10AM +0100 Peter Funk wrote:
[...]
> Jedoch brauche ich noch das Abtrennen des führenden
> "/dev/" vom Pfadnamen.


basename(1) sollte genau das machen was du willst.

Beste Grüße,
Spiro.
Ähnliche Themen