Möglich ... Killuser.sh

E

El Kassem

scan my network and die
Hallo,
Ich versuche gerade ein Shellskript zuschreiben.
Nun folgende Aufgabenstellung :
Wenn ich als User das Shellskript ausführe sollte folgender Aufbau kommen :

1) Armin
2) Nina


## u.s.w.
so , wenn ich jetzt in mien "eingabefeld" 1 oder 2 oder whatever eintrage, soll diese User gekickt werden .
Das kicken stell ich mir so vor, das der user sofort wieder vor seiner Anmeldemaske landet.

Ich hoffe das ist verständlich...
Menü hätte ich mit select gemacht..
Öhmmm ..
ja..

Mein Problem ist jetz folgendes :
Wie kann ich mir alle aktiven (also die User die online sind..) raussuchen.
und, welchen prozess muss ich killen damit er wieder vor siener anmeldemakse erscheint , oder kann ich alle seine Prozesse einfach killen ?!

Und wie würde der grundsätzliche Aufbau aussehen .
Und könnte man das Skript so machen das es auch für normale User ausführbar ist ?! :-)

Testumgebungen sind : Fedora , Ubuntu .. (sollte aber da doch kein probs geben oder s?? ~ )

Danke im Vorraus..
 
Zu jedem user gehört eine getty instanz kill die
Code:
 2748 tty1     Ss+    0:00 /sbin/getty 38400 tty1
 2751 tty2     Ss+    0:00 /sbin/getty 38400 tty2
 2752 tty3     Ss+    0:00 /sbin/getty 38400 tty3
 2753 tty4     Ss+    0:00 /sbin/getty 38400 tty4
 2754 tty5     Ss+    0:00 /sbin/getty 38400 tty5
 2755 tty6     Ss+    0:00 /sbin/getty 38400 tty6
oder benutzen die X
 
aha...und krieg ich den namen auch ?
Denn der name wäre ja interessant also mit welchen namen er angemeldetet ist ?
Und wie kann ich dann den ausgeben ? Und dann wenn man den Namen auswählt im Hintergrund den Prozess killt ?
 
Wie kann ich mir alle aktiven (also die User die online sind..) raussuchen.
Code:
w | awk '{print $1}' | grep '[a-z][:lower:]'


und, welchen prozess muss ich killen damit er wieder vor siener anmeldemakse erscheint , oder kann ich alle seine Prozesse einfach killen ?!
Code:
killall -u $USER
Ich weiss aber nicht, was du mit "Anmeldemaske" meinst. Den Login vom Loginmanager, oder vom Terminal? Der Loginmanager wird ja vom Xserver verwaltet, und der läuft unter root.
Code:
root@debian~ # ps | grep xdm
root      3457  0.0  0.0   5444   972 ?        Ss   13:57   0:00 /usr/bin/xdm
root      3459  2.0 11.5 130580 120036 tty7    RLs+ 13:57   9:31  \_ /usr/bin/X :0 vt7 -dpi 85 -nolisten

Und könnte man das Skript so machen das es auch für normale User ausführbar ist ?! :-)
Code:
man chmod
 
"pkill -u <benutzername>" ist IMHO more unix-like. Auf Solaris beispielsweise ist killall == halt.
 
Oke, danke,
Werde morgen beginnen das Skript zu schreiben .
Werde euch auf den laufenden halten ..

Und.. Ich meinte das so mit user ausführen ..
Es werden ja unter umständen befehle verwendet im skript der nur der root ausführen darf, da wollte ich dann eben nur sagen das es schön wäre wenn das auch ein user ausführen könnte...

Zugriffsrechte etc. ist eh klar ;)
 
Code:
who -u
liefert dir alles was du brauchst.

Allerdings solltest du ganz schnell vergessen, andere user von nicht root abschießen zu gestatten.
IMHO wirst du das ohnehin nicht so ohne Weiteres hinbekommen.

Es gibt dafür zwar Lösungen, aber die lasse ich hier weg.
 
Na , die Möglichkeiten würde ich aber doch gerne hören.
Es geht ja nur darum das ich auf mein Linux System ein noirmaeln Account auch haber ( aus sicherheitsgründen.. ) ..und trozdem will ich andere User abschiessen wollen..

Danke
 
Ich glaube, dass was du suchst, nennt sich "whowatch".

Code:
apt-get install whowatch

unter deban.


IMHO wirst du das ohnehin nicht so ohne Weiteres hinbekommen.

Warum? Sudo machts doch möglich... und das ist nun wirklich nicht schwierig!


Viel Spaß!
 
Zuletzt bearbeitet:
..und trozdem will ich andere User abschiessen wollen..
Was soll das eigentlich werden?
Krieg?
Wenn du mit so einer Script-Kiddie-Mentalität an die Sache herangehst, wird das eh nix. Lern doch erstmal den Umgang mit der Bash, sowie die Linuxgrundlagen.
Dazu gehören unter anderem:

- Bootsystem/initprozess
- Dateisystemhierarchie
- Benutzerverwaltung

Zum Thema Bash hier mal ein gutes Wiki:

http://bash-hackers.org/wiki/doku.php
 
Warum? Sudo machts doch möglich... und das ist nun wirklich nicht schwierig!

...wenn du sudoerrs entsprechend einrichtest.
Als root (dem das vorbehalten sein sollte) ist das kein Problem.
Man kann auch eine Gruppe admin anlegen und dort das privileg vergeben.
Aber doch bitte nicht jedem user.
Sowas ergibt IMHO aber nur auf einem Multiusersystem Server einen Sinn.

Den Admin möchte ich sehen, der dort seinen Usern gestattet selbst root abzuschießen.
Man kann es drehen wie man will, es wird nichts sinnvolles dabei rauskommen.
 
Hallo..
So , nach n bisschen Coding ist zwar was rausgekommen, aber es funktioniert nicht .. :headup:

Probiert das Skript einfach mal selber aus , dann werdet ihr relativ schnell die "Fehlerquelle" sehen.

Nun, nein @ Wolfang@ das ist swo gemeint : ICh als User ( der eigtl. auch root ist aber aus security reasons nicht auf den root switcht) will andere User (eigtl. unter mir geordnet ) kicken ( wenns nötig ist!!)

Ja..
Nun eine andere Frage, ich will dann später vllt dazu bauen das ich den User banne.
Nun unter Bannen versteh ich wenn er sich einloggen will steht dann sowieso wie :
Sie wurden vom Systemadministrator bis 1.2.2008 auf diesen Server ausgeschlossen.

oder so~
Würde das gehen und wenn ja bitte wieder die "Grundansätze" ..
So hier mal mein bis jetziges Skript :

Code:
#!/bin/bash
#######################################
#              Killuser.sh            #
#              Version 0.1            #
#       Coding by El Kaswsem      #
#######################################

### Aktuelle Liste von den Usern die Online sind ###
select killuser in $(users)
### Genau in diesem Bereich liestet er mir alle User auf die Online sind ###
do 
	echo "Sie haben $killuser ausgewählt."
	echo "Wollen Sie $killuser wirklich killen"
echo "Ja [J] Nein [N] Anderen User auswählen [A]"
read wirklich
done
### Abfrage ob das der ausführbare User wirklich will ###
if [ $wirklich = "J" ] 
	then
	echo "So ..ich töte dich" 
        #$(killall) $killuser
elif [ $wirklich = "N" ]
	then break
elif [ $wirklich = "A" ] 
	then 
	echo "Die Funktion ist noch in Arbeit.."
else 
	echo "Du darfst nur die 3 oben angeben buchstaben auswählen.."
fi
 
Zuletzt bearbeitet:
*will nur nochmal auf den wichtigen Theard hinweisen*
 
Hallo..
So , nach n bisschen Coding ist zwar was rausgekommen, aber es funktioniert nicht .. :headup:

Probiert das Skript einfach mal selber aus , dann werdet ihr relativ schnell die "Fehlerquelle" sehen.

Funktioniert nicht ist keine Fehlermeldung.
Und nein, es ist nicht unsere Aufgabe deinen Code zu testen, oder gar zu debuggen.

Pushen ist hier auch nicht gern gesehen.

Wolfgang
edit:
Einen kleinen Hinweis gebe ich dir aber doch:
select name [ in word ] ; do list ; done
The list of words following in is expanded, generating a list of
items. The set of expanded words is printed on the standard
error, each preceded by a number. If the in word is omitted,
the positional parameters are printed (see PARAMETERS below).
The PS3 prompt is then displayed and a line read from the stan‐
dard input. If the line consists of a number corresponding to
one of the displayed words, then the value of name is set to
that word. If the line is empty, the words and prompt are dis‐
played again. If EOF is read, the command completes. Any other
value read causes name to be set to null. The line read is
saved in the variable REPLY. The list is executed after each
selection until a break command is executed. The exit status of
select is the exit status of the last command executed in list,
or zero if no commands were executed.

;)
 
Zuletzt bearbeitet:
Wenn ich mich richtig erriniere , ist dsa die MAN page von select ;)
(Die kenn ich mittlerweile auch) konnte aber nichts essentiel wichtiges finden.. ?
 
Code:
select name [ in word ][color=red][b] ;[/b][/color] do list ; done

Dann sieh nochmal hin.
 
Danke
so mein Killuser skript soll aber nicht nur die User killen sondern auch noch User banenen können.

Die idee wie das ganz gehen könnte hab ich schon ich weiß aber weder wo ich ich mein teil des scriptes reineditere.
Es soll während des Logins sofort überprüfen .. so auf die art :
if [username = "root"] then
chmod 000 /
echo "You are banned"
else
echo ""
fi

ich glaub alle wissen was ich mein , hat da jemand ne idee wie die umsetzung funktiuonieren könnte / wird.
 
Zurück
Oben