funuckler
Goto Top

einzelnen Benutzer Zugriff auf die Shell verwehren

Hallo alle zusammen,

erst mal Entschuldigung, falls es einen solchen Beitrag schon geben sollte, habe aber keinen über die Suchfunktion gefunden. Mein Problem:
Ich möchte einem einzelnen User den Zugriff auf die Shell verbieten, allerdings soll dieser auch eine individuelle Nachricht beim Login-Versuch
erhalten. Ich habe es schon mit etc/nologin probiert, aber dann kommt bei jedem diese Meldung und nur der Root kann sich noch anmelden. Wie kann ich es einrichten, daß wirklich nur der Eine Nutzer sich nicht einloggen darf und diese Meldung erhält ?

Vielen Dank im voraus.

MFG,

Funuckler

Content-ID: 119869

Url: https://administrator.de/contentid/119869

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

jhinrichs
jhinrichs 07.07.2009 um 08:47:31 Uhr
Goto Top
Hallo,

eine "händische" Methode wäre, die /etc/passwd zu editieren und dem Benutzer die Loginshell zu entziehen.
Also die Zeile:
user:....:/bin/bash
ändern in
user:......:/bin/false

Oder über den Befehl "usermod":

usermod -s /bin/false user
helpi
helpi 07.07.2009 um 09:41:48 Uhr
Goto Top
Hi,

und als Ergänzung statt dem /bin/false dann die Ausgabe der individuellen Nachricht ...

Am einfachsten ein Skript aufrufen mit der Ausgabe des Textes, aber dann hat man die Gefahr das durch geschicktes Drücken von ctrl-c der User doch in die Shell kommt. Als den Abbruch unterbinden und dann den Text jeweils aus dem Home-Verzeichnis holen, dann kann man auch ein universelles Skript nutzen.
lemmi222
lemmi222 07.07.2009 um 09:42:23 Uhr
Goto Top
Hi,

alternativ kann der Account auch mit passwd -l gesperrt werden.
Funuckler
Funuckler 07.07.2009 um 10:22:52 Uhr
Goto Top
Danke schon mal für die Antworten,

aber welches Dateiformat muß ich nutzen wenn ich bin/false ersetzen will? ICh hatte an eine einfache Text-Datei gedacht, aber das haut nicht hin. Ich bekomme dann eine Fehlermeldung, daß das Format der Datei falsch sei. Der Account soll nicht mit passwd -l gesperrt werden.

MFG,

Funuckler
jhinrichs
jhinrichs 07.07.2009 um 10:45:33 Uhr
Goto Top
Hallo,

die Textausgabe erreichst Du über ein Shellscript, z.B.:

#!/bin/sh
echo "Aetsch, Du hast keine Shell!"  

Das speicherst Du z.B. unter /bin/meinedatei ab, machst es mit
chmod a+rx /bin/meinedatei
ausführbar und trägst es wie oben beschrieben als Loginshell für den User ein.

Wenn der User dann Ctrl-C drückt, endet die Shell und er ist wieder ausgeloggt. Abfangen könnte man Ctrl-C mit dem Befehl "trap", also z.B. so:

#!/bin/sh
trap "echo \"Na, na!\"" 2  
echo "Aetsch, Du hast keine Shell!"  

das sollte aber nicht nötig sein.
Funuckler
Funuckler 07.07.2009 um 12:27:16 Uhr
Goto Top
Besten Dank,

alles klar jetzt.

MFG,

Funuckler