sudo tut es nicht

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

sudo tut es nicht

Beitrag von latenite » 08.03.2008 00:41:28

Hallo an alle sudoers

Ich habe mit visudo -s meine /etc/sudoers editiert so das der user kai alles darf

er kann dann auch in / eine datei anlegen..schoen und gut aber ...

Code: Alles auswählen

12:39 kai@t23 ~ -> touch /sudotest
touch: kann „/sudotest“ nicht berühren: Keine Berechtigung
12:39 kai@t23 ~ -> sudo touch /sudotest
12:40 kai@t23 ~ -> sudo echo mem > /sys/power/state
bash: /sys/power/state: Keine Berechtigung
12:40 kai@t23 ~ -> 
den befehl den ich ausfuehren will nimmt er immernich nich an ..nur wenn ich root bin.

warum was ist da falsch

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Re: sudo tut es nicht

Beitrag von Lohengrin » 08.03.2008 01:37:00

latenite hat geschrieben:Ich habe mit visudo -s meine /etc/sudoers editiert so das der user kai alles darf

er kann dann auch in / eine datei anlegen
Hoffentlich nicht.
latenite hat geschrieben:

Code: Alles auswählen

12:39 kai@t23 ~ -> touch /sudotest
touch: kann „/sudotest“ nicht berühren: Keine Berechtigung
Ist ja auch kai und nicht root.
latenite hat geschrieben:

Code: Alles auswählen

12:39 kai@t23 ~ -> sudo touch /sudotest
Ist ja auch root und nicht kai.
latenite hat geschrieben:

Code: Alles auswählen

12:40 kai@t23 ~ -> sudo echo mem > /sys/power/state
bash: /sys/power/state: Keine Berechtigung
Da wird wohl das Ergebnis von sudo echo mem nach /sys/power/stat geschriben. Und es ist kai der da schreiben will. Vllt klappt sudo 'echo mem > /sys/power/stat'. Ich kann es aber ncht ausprobieren, denn ich benutze kein sudo.

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

Beitrag von KBDCALLS » 08.03.2008 11:41:50

Ohne die Datei /etc/sudoers selbst wird man wohl nichts dazu sagen können.

Was gibt

Code: Alles auswählen

sudo -l
aus ?
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.

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Beitrag von latenite » 10.03.2008 20:06:09

[20:06:49] [kai@desktop:~]

Code: Alles auswählen

$ sudo -l
User kai may run the following commands on this host:
    (root) NOPASSWD: ALL
    (ALL) ALL
[20:06:52] [kai@desktop:~] $ 

[20:07:19] [root@desktop:/home/kai] # cat /etc/sudoers

Code: Alles auswählen

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults	env_reset

# Uncomment to allow members of group sudo to not need a password
%sudo ALL=NOPASSWD: ALL

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root	ALL=(ALL) ALL
kai	ALL=(ALL) ALL
trusteduser ALL=(ALL)NOPASSWD:/usr/local/bin/my_scripts/*
[20:07:23] [root@desktop:/home/kai] # 
ich denke das "kai" hier alles darf? oder?
:roll:

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 10.03.2008 20:22:41

ich will jetzt nicht mit dem bösen Finger zeigen aber ich tus trotzdem :D

ähm.. bist du lebensmüde? :).. kai darf alles.. und das ohne Passwort.. willst du, dass dein Linux genauso schnell zu kompromitieren ist wie dein Windows? das "NOPASSWD" solltest du (Finger!!) schnell wieder rausnehmen..

ansonsten wurde dir schon geantwortet.. beim ersten Versuch warst du nicht root der zweite hatte funktioniert und wenn du eine > Umleitung machst dann passiert das nicht mehr im Befehl sondern danach..


sudo echo "HALLO" > /xxxx.yyy

da wird "echo" zwar als root ausgeführt (bzw. mit seinen Rechten) aber das Ergebnis (also "HALLO") wird dann von deinem User versucht per > in die Datei xxxx.yyy umzuleiten.. und damit auch wieder mit den Rechten von deinem normalen User der das nicht darf
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Beitrag von latenite » 10.03.2008 20:33:50

Code: Alles auswählen

08:33 kai@t23 ~ -> cat /usr/local/bin/my_scripts/godown 
#!/bin/sh

if [ x"$UID" != x"0" ]
then sudo $0 $*
exit
fi

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin/my_scripts
# hier nun die Kommandos welche als Root ausgeführt werden sollen

echo mem > /sys/power/state
08:33 kai@t23 ~ ->
geht wunderbar

aber aus der bash kann ich als kai immernoch nichts machen...

Code: Alles auswählen

08:33 kai@t23 ~ -> echo mem > /sys/power/state
bash: /sys/power/state: Keine Berechtigung
08:34 kai@t23 ~ -> sudo echo mem > /sys/power/state
bash: /sys/power/state: Keine Berechtigung
08:34 kai@t23 ~ -> sudo 'echo mem > /sys/power/state'
sudo: echo mem > /sys/power/state: command not found
08:35 kai@t23 ~ -> 
was muss ich denn eingeben damit ich als "kai" alle folgebefehle mit rootrechten ausfuehren kann und nicht nur das echo?

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 10.03.2008 20:46:33

Sorry von mir wirst du diesbezüglich keinen Tipp bekommen, da ich auch aus dem Grunde zu Linux gewechselt bin, weil es seltener als Ziel von Viren gesehen wurde und selbst wenn die meisten User es wenigstens ein bisschen erschwerten, da sie das System nicht mit Sicherheitslöchern spickten..

Die Unsicherheit von Windows beruht zu einem Großteil darauf, dass die Leute alle als Administrator durch die Gegend rennen und mit deiner Sudo Einstellung machst du im Endeffekt nichts anderes..
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Beitrag von latenite » 10.03.2008 21:22:18

die NOPASSWD einstellung habe ich doch nur temp drin waerend ich probiere..die wird dann wieder eingestellt. VERSPROCHEN!

sudo an sich ist doch sicher?! oder? wenn es vom user mit passwort geschuetzt ist?! :roll:

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

Beitrag von KBDCALLS » 10.03.2008 21:57:39

Irgendwie erschließt sich mir auch der Sinn nicht so richtig. Was versuchst du da ?
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.

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 10.03.2008 22:16:34

latenite hat geschrieben:

Code: Alles auswählen

08:33 kai@t23 ~ -> cat /usr/local/bin/my_scripts/godown 
#!/bin/sh

if [ x"$UID" != x"0" ]
then sudo $0 $*
exit
fi

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin/my_scripts
# hier nun die Kommandos welche als Root ausgeführt werden sollen

echo mem > /sys/power/state
08:33 kai@t23 ~ ->
geht wunderbar
das liegt daran, dass er durch die "if" Abfrage prüft, ob er root ist und wenn nicht dann startet er sich selbst per sudo.. dadurch läuft das gesamte script als root und hat dadurch auch bei dem "echo" kein Problem..

aber was willst du denn machen?

zur Not geht dein ding so:

Code: Alles auswählen

sudo su -c 'echo hallo > /txt.xx'
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 10.03.2008 22:49:45

latenite hat geschrieben:sudo an sich ist doch sicher?! oder? wenn es vom user mit passwort geschuetzt ist?! :roll:
Wenn der Benuzter hinreichend blöd ist sein Passwort an einer unpassenden Stelle einzugeben, hast du ein Problem.
Ich habe bisher noch nicht sudo sinnvoll eingesetzt. Ich brauche es nur, wenn ich bei Ubuntu root werden will: sudo bash.

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Beitrag von latenite » 11.03.2008 02:38:40

eigendlich habt ihr recht..wenn ich fuer jeden Benutzer so ein script anlege dann kann ich mir das sudo-ding auch klemmen...

aber danke fuer den "su" tipp manch mal sieht am den walt vor baeumennicht.

NOPASSWD ist vergangenheit.... Indianderehrenwort :lol:

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 11.03.2008 09:21:13

latenite hat geschrieben:NOPASSWD ist vergangenheit.... Indianderehrenwort :lol:
Braver Junge :)

kleiner Tipp, wenn du z.B. einem Benutzer nur erlauben willst einen speziellen Befehl ohne Passwort auszuführen, kannst du das auch machen:

s ALL=(root) NOPASSWD: /sbin/halt

gut ich habe das Problem, dass ich, sollte ich gehackt werden und der Angreifer sudo missbrauchen will, plötzlich einen sich runterfahrenden Rechner habe, aber das ist etwas, was ich zur Not verkraften kann :)
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 11.03.2008 11:42:22

Savar hat geschrieben:kleiner Tipp, wenn du z.B. einem Benutzer nur erlauben willst einen speziellen Befehl ohne Passwort auszuführen, kannst du das auch machen:

s ALL=(root) NOPASSWD: /sbin/halt
Das hätte man doch auch mit einer Gruppe erledigen können.
Ich habe immernochnicht verstanden wofür sudo gut ist.

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

Beitrag von KBDCALLS » 11.03.2008 13:39:50

Mit su oder sonstigem ist man Root mit allen sich dadurch ergebenden Konsquenzen. Für bestimmte Aktionen braucht man nun mal die Rechte von Root. Und ich brauche das Passwort von Root Jetzt kommt Sudo oder Super ins Spiel. Dafür braucht man auch ein Passwort oder garkeins. je nach Konfiguration. Und wenn ich eins brauche, dann das des Nutzers der genanntes ausführt. Und dann so wie @savar beschrieben hat kann ich mit Sudo auch nur Ausführung betimmter Befehle erlauben, oder wenn man noch weiter eingeschränken , die dann nur in ganz bestimmter Form genutzt werden dürfen.

Beispiel :

Ich erlaube der Gruppe

Code: Alles auswählen

www-data 
eine Partition ohne Passwort auszuhängen.

Code: Alles auswählen

%www-data  ALL = NOPASSWD: /bin/umount /dev/sdd1 /mnt
Diese Gruppe ist dann in der Lage

Code: Alles auswählen

/dev/sdd1 /mnt
auszuhängen

Code: Alles auswählen

/dev/sdd1 /usr
ginge dann schon nicht mehr

und

Code: Alles auswählen

/dev/sdd2 /mnt
erst Recht nicht.
dito
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.

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 11.03.2008 15:35:30

KBDCALLS hat geschrieben:Mit su oder sonstigem ist man Root mit allen sich dadurch ergebenden Konsquenzen. Für bestimmte Aktionen braucht man nun mal die Rechte von Root. Und ich brauche das Passwort von Root Jetzt kommt Sudo oder Super ins Spiel. Dafür braucht man auch ein Passwort oder garkeins. je nach Konfiguration. Und wenn ich eins brauche, dann das des Nutzers der genanntes ausführt.
Dass die Möchtegern-Roots nicht das Root-Passwort kennen ist gut. Aber auch das kann man mit Gruppen erreichen. Zuerst die Hintertür in C schreiben.

Code: Alles auswählen

/* hintertuer.c */
#include <unistd.h>
main() {
    setuid(0);
    seteuid(0);
    execl("/bin/su","",0);
}
Dann das Ding einbinden

Code: Alles auswählen

$ gcc -o hintertuer hintertuer.c
$ su
# addgroup moechtegern
# chown root:moechtegern hintertuer
# chmod 4750 hintertuer
# cp hintertuer /usr/local/bin/
# adduser kai moechtegern
# exit
KBDCALLS hat geschrieben:Und dann so wie @savar beschrieben hat kann ich mit Sudo auch nur Ausführung betimmter Befehle erlauben, oder wenn man noch weiter eingeschränken , die dann nur in ganz bestimmter Form genutzt werden dürfen.
Ich würde für genau den Zweck ein Binary bauen und dies wie oben zugänglich machen.

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

Beitrag von KBDCALLS » 11.03.2008 15:57:58

Warum alles ein zweites mal erfinden ? Jedes mal wenn sich etwas ändert , strick man sich ein neues Binary, und ob das fehlerbehaftet ist weißt du auch nicht. Aber ich kann auch ein Kamel durch ein Nadelöhr treiben Bzw zumindest versuchen.
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.

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 11.03.2008 19:59:10

KBDCALLS hat geschrieben:Warum alles ein zweites mal erfinden ? Jedes mal wenn sich etwas ändert , strick man sich ein neues Binary, und ob das fehlerbehaftet ist weißt du auch nicht. Aber ich kann auch ein Kamel durch ein Nadelöhr treiben Bzw zumindest versuchen.
Sudo ist ohnehin ein mächtiges Tool, wo man leicht Sicherheitslücken einbaut. So wie Ubuntu es vormacht (der einzige Benutzer darf sudo bash machen) würde ich sicher kein System aufsetzen.
Ich denke, dass man alles was man mit sudo machen kann auch mit Gruppen und suid erledigen kann. Umgekehrt nicht. Gemäß der Aufforderung ein System einfach und dumm zu halten, sehe ich es gar nicht ein neben der sehr mächtigen Rechteverwaltung durch Gruppen noch sudo zu benutzen.

Hat jemand ein gutes Argument für sudo? Ich lasse mich gerne belehren.

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von habakug » 11.03.2008 20:27:37

Hallo!

In Netzwerken ist sudo ein sehr nützliches Tool um Aufgaben zu delegieren und die Ausführung zu überwachen. Hier [1] wird erklärt wie es läuft. Auch Debian bietet bei der Installation die Einrichtung eines "Sudo-Systems" ala Ubuntu an.

Gruß, habakug

[1] http://www.komar.org/pres/sudo/

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

Beitrag von KBDCALLS » 11.03.2008 21:07:55

Lohengrin hat geschrieben: Sudo ist ohnehin ein mächtiges Tool, wo man leicht Sicherheitslücken einbaut. So wie Ubuntu es vormacht (der einzige Benutzer darf sudo bash machen) würde ich sicher kein System aufsetzen.
Wenn man etwas falsch einsetzt dann kann man mit allem Schindluder treiben. Soviel sollte eigentlich jedem klar sein.
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.

Benutzeravatar
TRex
Moderator
Beiträge: 8141
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Beitrag von TRex » 11.03.2008 21:20:22

dd ist der oberkiller :)

Wobei...ohne root-Rechte kann man da nicht allzuviel anstellen. Eigentlich reicht zum System-Malträtieren cat /dev/zero > /tmp/nullfile...nach kurzer Zeit ist die Platte voll.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 11.03.2008 23:42:32

und wer gerne Performancekiller auf einem Server sein möchte mach halt einfach:

Code: Alles auswählen

while :
do
sleep 0.1
sync
done
(sleep nur, damit der Prozess nicht unter Umständen gekillt wird weil er zuviel CPU Zeit frisst)..

Caching ist damit quasi deaktiviert.. mach das auf einem stark festplattenabhängigen System wie z.B. einem DB Server und es wird schnell zu Engpässen kommen..
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 12.03.2008 11:48:21

habakug hat geschrieben:In Netzwerken ist sudo ein sehr nützliches Tool um Aufgaben zu delegieren und die Ausführung zu überwachen. Hier [1] wird erklärt wie es läuft. Auch Debian bietet bei der Installation die Einrichtung eines "Sudo-Systems" ala Ubuntu an.
Danke für die Info.
Das mit dem Logging hört sich gut an. Aber wer sudo bash machen kann, kann auch die Logfiles bearbeiten.
Interessant fand ich diese Zeile in dem von dir Verlinkten
Some people just don`t "get it" and resist ... "I need root!"
Are you sure you want those folks to have it?!? ;-)
Ich würde diesen Leuten auch nicht erlauben per sudo root zu werden.

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von habakug » 12.03.2008 12:51:00

Hallo!

Die "poor man's sudo"-Version von Ubuntu (und auf Wunsch auch Debian) ist für Einzelplatzsysteme und ein Kompromiss aus Usability und Security. Der User ist Mitglied der Gruppe "adm" und darf mittels sudo alles, auch root werden (sudo su). Das ist nicht die wirkliche Aufgabe von sudo. Wenn Aufgaben an Sysadmins, Operators, Backup-Admins usw. vergeben werden sollen, entfaltet sich erst die ganze Palette der Möglichkeiten. Wer sich dafür interessiert sollte sich z.B. hier [1] mal einlesen und auch den Links folgen.

Gruß, habakug

[1] http://www.softpanorama.org/Access_control/sudo.shtml

Antworten