[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: User erstellen der nur halt darf



Thorsten Gunkel schriebte:

>> Ich habe das bei mir so realisiert, dass das "sudo poweroff" im .bshrc
>> des
>                                                                   ^^^^^^
> Was ist das für eine Datei?

Sorry, ich meinte "/home/poweroff/.bash_profile" Das ist ein Skript, das
als erste Aktion einer login-shell aufgerufen wird. (.bashrc macht das
gleiche für non-login-shells)


>> poweroff-User eingetragen ist. Dieses Script wird automatisch direkt
>> nach dem login ausgeführt.  ---> Rechner runterfahren durch einloggen
>> :-) Keine Chnce noch irgend ein anderes Programm auszuführen.
> 
> Er hat nicht nur eine, sondern zahlreiche Chancen. - Das anlaufenden
> sudo töten/anhalten

Wie das?
Der poweroff-Befehl dreht ja nicht Däumchen im Hintergrund, sondern
führt "sudo shutdown -h now" aus. Wenn man versuchen will, das zu töten,
müsste man sehr schnell sein. Mir geht es aber wie beschrieben darum,
einer Person, die vor Ort vor dem Rechner steht, den Rechner runter fahren
zu lassen. Da hat diese Person ohnehin die Möglichketeit böswillig den
Rechner zu übernehmen (Am bequemsten mit einer Knoppix-CD...). Über
Netzwerk ist der Login für den poweroff-User natürlich nicht erlaubt.

Aber ok, wenn es auch übers Netz gehen soll, dann sollte man den Aufruf
weiter nach vorne legen. Zum Beispiel direkt in passwd:
------/etc/passwd-------
[...]
aus:x:123:123:aus:/nonexistant:/usr/local/sbin/aus.sh
------------------------

-----/usr/local/sbin/aus.sh------
#!/bin/sh
sudo poweroff
-------------------------------

-----/etc/sudoers-----------
[...]
aus     ALL=NOPASSWD: /sbin/poweroff
-----------------------------

Damit wird direkt nach dem Login das Script aus.sh ausgeführt. Dort steht
zwar auch eine shell, aber die ist nicht interaktiv, horcht also nicht auf
stdin. Insbesondere bekommt der aus-User nach dem Login gar keine
interaktive Shell. Er kann also nicht noch schnell ein paar Befehle
nachschieben, bevor der Rechner sich abschaltet. Der Eintrag in
/etc/sudoers sorgt dafür, dass das runterfahren erlaubt ist, obwohl der
user "aus" nicht "root" ist.


> - Warten bis Deine .bshrc abgearbeitet wurde

Die wird mitten in der Arbeit unterbrochen, indem sich das System in den
runlevel 6 verabschiedet und gnadenlos alle Prozesse killt. Beim abwarten
kannst Du also nur zuschauen, wie der Rechner runterfährt. Das ist ja
gerade der Sinn der Aktion.


> - Direkt versuchen die Datei zu überschreiben (ftp/smb/scp/...) - ...

Dagegen hilft es, der Datei der Schreibrechte zu entziehen (auch dem
User). Außerdem müssten diese Services aktiv sein, was sie in meinem
Fall nicht sind. Und wenn sie aktiv sind, müssen sie im kritischen
Bereich schreiben dürfen, was in den sbin-Ordnern sowieso eine schlechte
Idee wäre.

Insgesamt hast Du natürlich Recht, dass mein Vorschlag böswillig
ausgehebelt werden könnte -- war eben ein schneller Hack für den
Nachtwärter. Mit dem Eintrag in /etc/passwd und ohne interaktive Shell
sollte es ein Stück sicherer sein. Einverstanden?

           ---<(kaimartin)>---


>> privat: familieknaak.de
> OT: Die Umlaute dort sind kaputt. http://validator.w3.org hilft ...

Ok. Ich werds mir mal anschauen.

-- 
Kai-Martin Knaak
gpg-key: http://pgp.mit.edu:11371/pks/lookup?search=kai-martin&op=index&exact=on



Reply to: