[gelöst] SSH - Eine Session pro Benutzer
-
- Beiträge: 13
- Registriert: 17.02.2010 17:52:18
[gelöst] SSH - Eine Session pro Benutzer
Hallo zusammen,
ich habe da folgende Problemstellung. Ich möchte gerne das wenn ein Benutzer sich am SSH-Server anmeldet und eine aktive Session hat, es nicht möglich ist das sich ein anderer mit den gleichen Benutzerdaten anmeldet. Bisher kann ich mich mit einem Benutzer ja 10x anmelden wenn ich möchte.
Es soll dann irgendwie eine Meldung kommen dass der Benutzer bereits eingeloggt ist und sich erst abmelden muss bevor ein neuer Login möglich ist und der Verbindungsversuch soll abgebrochen werden.
Eine direktvie in der Konfigurationsdatei wie -> "PermitOneLoginSessionPerAccount yes" wäre der ultimative bringer
Ich habe auch schon ein wenig bei Google gesucht, mir die manpage angesehen, aber irgendwie scheint das so erstmal nicht möglich zu sein. Es soll wirklich nur anhand des Benutzernames passieren. Nicht jedoch anhand der IP.
Weiß das zufällig jemand etwas?
Viele Grüße
~T
ich habe da folgende Problemstellung. Ich möchte gerne das wenn ein Benutzer sich am SSH-Server anmeldet und eine aktive Session hat, es nicht möglich ist das sich ein anderer mit den gleichen Benutzerdaten anmeldet. Bisher kann ich mich mit einem Benutzer ja 10x anmelden wenn ich möchte.
Es soll dann irgendwie eine Meldung kommen dass der Benutzer bereits eingeloggt ist und sich erst abmelden muss bevor ein neuer Login möglich ist und der Verbindungsversuch soll abgebrochen werden.
Eine direktvie in der Konfigurationsdatei wie -> "PermitOneLoginSessionPerAccount yes" wäre der ultimative bringer
Ich habe auch schon ein wenig bei Google gesucht, mir die manpage angesehen, aber irgendwie scheint das so erstmal nicht möglich zu sein. Es soll wirklich nur anhand des Benutzernames passieren. Nicht jedoch anhand der IP.
Weiß das zufällig jemand etwas?
Viele Grüße
~T
Zuletzt geändert von shell4life am 24.02.2010 02:19:02, insgesamt 1-mal geändert.
- habakug
- Moderator
- Beiträge: 4314
- Registriert: 23.10.2004 13:08:41
- Lizenz eigener Beiträge: MIT Lizenz
Re: SSH - Eine Session pro Benutzer
Hallo!
Versuch mal so in der /etc/ssh/sshd_config :
Nach einem Dienstneustart sollte sich nur noch der eine User anmelden dürfen.
Versuch mal so in der /etc/ssh/sshd_config :
Code: Alles auswählen
DenyUsers *
AllowUsers EinUser
Gruß, habakugman sshd_config hat geschrieben:AllowUsers
This keyword can be followed by a list of user name patterns,
separated by spaces. If specified, login is allowed only for
user names that match one of the patterns. Only user names are
valid; a numerical user ID is not recognized. By default, login
is allowed for all users. If the pattern takes the form
USER@HOST then USER and HOST are separately checked, restricting
logins to particular users from particular hosts. The allow/deny
directives are processed in the following order: DenyUsers,
AllowUsers, DenyGroups, and finally AllowGroups.
-
- Beiträge: 13
- Registriert: 17.02.2010 17:52:18
Re: SSH - Eine Session pro Benutzer
Hi habakug,
ja damit kann man User eingrenzen die sich überhaupt einloggen dürfen. Wenn ich 20 User z.B in PAM drin habe, dann kann ich damit sagen davon dürfen sich aber nur 2 über SSH einloggen.
Ich möchte jedoch User A loggt sich ein, jetzt kommt User B mit den gleichen Benutzerdaten am Server an und soll keine Möglichkeit des Logins haben. Also jeder Benutzer bekommt maximal 1 pseudo-terminal zugewiesen, wenn das belegt ist, kein Login.
Aber ich habe es auch getestet weil ich dachte, es könnte ja klappen das der Benutzer sich dann auch nur 1x anmelden darf. Mit kommt eine Idee zu einem Script womit sich das sicherlicht machen lässt. Aber es ist bis jetzt nur eine grobe Idee.
1. Der User loggt sich ein
2. Das Script guckt ob es schon ein Pseudo-Terminal zu dem Benutzer gibt, der Name ist ja in $USER enthalten
3. Das Script schreibt sich die PID der zweiten Sitzung raus, evtl in einer Tabelle und man nimmt jede PID aus Spalte 2, Zeile 2 abwärts.
4. Das Script setzt ein $kill -9 <pid>
5. Das Script wird in die .bashrc eingetragen und die Dateirechte so gesetzt das kein Benutzer dieses ändern kann.
Jaaaaa So ist erstmal die grobe Idee
Viele Grüße
~T
ja damit kann man User eingrenzen die sich überhaupt einloggen dürfen. Wenn ich 20 User z.B in PAM drin habe, dann kann ich damit sagen davon dürfen sich aber nur 2 über SSH einloggen.
Ich möchte jedoch User A loggt sich ein, jetzt kommt User B mit den gleichen Benutzerdaten am Server an und soll keine Möglichkeit des Logins haben. Also jeder Benutzer bekommt maximal 1 pseudo-terminal zugewiesen, wenn das belegt ist, kein Login.
Aber ich habe es auch getestet weil ich dachte, es könnte ja klappen das der Benutzer sich dann auch nur 1x anmelden darf. Mit kommt eine Idee zu einem Script womit sich das sicherlicht machen lässt. Aber es ist bis jetzt nur eine grobe Idee.
1. Der User loggt sich ein
2. Das Script guckt ob es schon ein Pseudo-Terminal zu dem Benutzer gibt, der Name ist ja in $USER enthalten
3. Das Script schreibt sich die PID der zweiten Sitzung raus, evtl in einer Tabelle und man nimmt jede PID aus Spalte 2, Zeile 2 abwärts.
4. Das Script setzt ein $kill -9 <pid>
5. Das Script wird in die .bashrc eingetragen und die Dateirechte so gesetzt das kein Benutzer dieses ändern kann.
Code: Alles auswählen
mlz@mail:~$ echo $USER
mlz
mlz@mail:~$ ps auwxx | grep 'sshd: mlz@pts'
mlz 2792 0.0 0.0 8156 1660 ? S 00:52 0:00 sshd: mlz@pts/0
mlz 24758 0.0 0.0 3936 784 pts/0 S+ 01:01 0:00 grep sshd: mlz@pts
mlz@mail:~$
Viele Grüße
~T
Re: SSH - Eine Session pro Benutzer
kannst du uns einmal den Grund für diesen Dirty-Hack erklären ? Ok, du möchtest, daß sich jeder Benutzer nur einmal einloggen kann, aber warum ?shell4life hat geschrieben:Mit kommt eine Idee zu einem Script womit sich das sicherlicht machen lässt. Aber es ist bis jetzt nur eine grobe Idee.
1. Der User loggt sich ein
2. Das Script guckt ob es schon ein Pseudo-Terminal zu dem Benutzer gibt, der Name ist ja in $USER enthalten
3. Das Script schreibt sich die PID der zweiten Sitzung raus, evtl in einer Tabelle und man nimmt jede PID aus Spalte 2, Zeile 2 abwärts.
4. Das Script setzt ein $kill -9 <pid>
5. Das Script wird in die .bashrc eingetragen und die Dateirechte so gesetzt das kein Benutzer dieses ändern kann.
btw die .bashrc wird von der Login-Shell nicht verwendet, wenn diese nicht von einer anderen Profile-Datei ( z.B ~/.bash_profile ) explizit aufgerufen wird
Re: SSH - Eine Session pro Benutzer
Wenn dein Script mal versagt, kannst du dich auch nicht mehr einloggen.
Je nachdem wo die Kiste steht, wäre das ein erstklassiges Knieschussgerät.
Je nachdem wo die Kiste steht, wäre das ein erstklassiges Knieschussgerät.
Re: SSH - Eine Session pro Benutzer
Bau's doch ein... sooo schwer kann das doch granininicht sein...shell4life hat geschrieben:Eine direktvie in der Konfigurationsdatei wie -> "PermitOneLoginSessionPerAccount yes" wäre der ultimative bringer
Oder klär Deine User über screen auf und gib ihnen ebendieses als Loginshell. Eine Variable in der systemweiten /etc/screenrc oder der userlokalen ~/.screenrc ermöglicht das Vorbestimmen der gewünschten Shell dann immernoch...
...und dann besteht einfach kein Notwendigkeitsdruck mehr mehrere ssh-Sessions zu benutzen...
...und in Ausnahmefällen, wo es vielleicht doch sinniger ist mal zwei ssh-Verbindungen aufbauen zu dürfen, ist's nicht verwehrt...
Re: SSH - Eine Session pro Benutzer
screen ist wirklich die genialste Linux-Anwendung überhaupt.
Setze in /etc/passwd die Shell auf /usr/bin/screen:
Auszug /etc/passwd:
globale Screen-Konfiguration /etc/screenrc:
Mit der letzten Zeile kannst du dem Benutzer einige Befehle verbieten. So wird es unmöglich innerhalb der Screen-Sitzung weitere Terminals zu öffnen. Insgesamt würde ich diese Zeile aber weglassen.
Bedenke:
Der Benutzer kann sich immer noch beliebig oft anmelden. Der Unterschied ist nur, dass er immer wieder das selbe Terminal zu sehen bekommt, egal wie oft er sich anmeldet. Das wird irgendwann ziemlich uncool. Außerdem kommt man sich dann natürlich ins Gehege, wenn zwei Personen gleichzeitig auf die Tastatur einhauen. Das "&" in der Statuszeile gibt im übrigen an, dass mehr als ein Benutzer aktuell zugreifen.
Ich nutze Screen im übrigen auf all meinen Systemen. Ist schön sich wieder anzumelden und alle Anwendungen sind noch da.
Meine Konfiguration, damit auch z.B. sftp funktioniert.
~/.bash_profile:
~/.screenrc:
Setze in /etc/passwd die Shell auf /usr/bin/screen:
Auszug /etc/passwd:
Code: Alles auswählen
user:x:1001:1001:,,,:/home/user:/usr/bin/screen
Code: Alles auswählen
startup_message off
hardstatus alwayslastline '[%H] %Lw%=%u %d.%m.%y %c '
defshell /bin/bash
aclchg * -x "screen detach pow_detach"
Bedenke:
Der Benutzer kann sich immer noch beliebig oft anmelden. Der Unterschied ist nur, dass er immer wieder das selbe Terminal zu sehen bekommt, egal wie oft er sich anmeldet. Das wird irgendwann ziemlich uncool. Außerdem kommt man sich dann natürlich ins Gehege, wenn zwei Personen gleichzeitig auf die Tastatur einhauen. Das "&" in der Statuszeile gibt im übrigen an, dass mehr als ein Benutzer aktuell zugreifen.
Ich nutze Screen im übrigen auf all meinen Systemen. Ist schön sich wieder anzumelden und alle Anwendungen sind noch da.
Meine Konfiguration, damit auch z.B. sftp funktioniert.
~/.bash_profile:
Code: Alles auswählen
/usr/bin/screen -xRR
Code: Alles auswählen
hardstatus alwayslastline '[%H] %Lw%=%u %d.%m.%y %c '
-
- Beiträge: 13
- Registriert: 17.02.2010 17:52:18
Re: SSH - Eine Session pro Benutzer
Hiho,
@gms
Ich brauche das für ein Tool was ich für die automatische Konfiguration von Cisco Geräten gebaut habe. Dort soll es halt so sein das sich nur 1x pro Benutzerkennung eingeloggt werden darf. Aber mit der .bashrc, da muss ich leider widersprechen, weil das geht. Oder ich finde einfach nicht wo sie referenziert wird. Geguckt in -> /etc/profile und alle Dateien um ~home des Benutzers. Hierzu ein kleiner Auszug.
@ThorstenS
Ja das ist absolut kein Problem, weil diese Einschränkung sich nicht auf ~root beziehen wird. Und wenn es funktioniert werde ich es ziemlich lange testen. Es ist nichts kritisches und der Server ist 20 Schritte entfernt.
@yeti
Programmieren kann ich leider kein Stück
@uname
Erst ein mal vielen Dank für deine Ausführliche Antwort. Nur leider ist Screen da keine alternative. Es soll nicht die Möglichkeit bestehen das sich 2x eingeloggt wird.
Viele Grüße
~T
@gms
Ich brauche das für ein Tool was ich für die automatische Konfiguration von Cisco Geräten gebaut habe. Dort soll es halt so sein das sich nur 1x pro Benutzerkennung eingeloggt werden darf. Aber mit der .bashrc, da muss ich leider widersprechen, weil das geht. Oder ich finde einfach nicht wo sie referenziert wird. Geguckt in -> /etc/profile und alle Dateien um ~home des Benutzers. Hierzu ein kleiner Auszug.
Code: Alles auswählen
root@mail:/home/mlz# cat /etc/passwd | grep mlz
mlz:x:50014:50014::/home/mlz:/bin/bash
root@mail:/home/mlz# ls -la
-rw-r--r-- 1 root root 0 14. Feb 20:31 .bash_history
-rw-r--r-- 1 root root 0 14. Feb 20:32 .bash_login
-rw-r--r-- 1 root root 0 14. Feb 20:32 .bash_logout
-rw-r--r-- 1 root root 32 14. Feb 20:35 .bash_profile.orig
-rw-r--r-- 1 root root 44 18. Feb 10:02 .bashrc
-rw-r--r-- 1 root root 2,4K 18. Feb 00:51 .bashrc.orig
-rw-r--r-- 1 root root 1 14. Feb 20:42 .profile
-rwxr-xr-x 1 root root 33 18. Feb 01:16 ssh_identify.sh
root@mail:/home/mlz# cat .bash_login
root@mail:/home/mlz# cat .profile
root@mail:/home/mlz# cat .bashrc
echo ""
echo ".bashrc abgearbeitet"
echo ""
root@mail:/home/mlz# su mlz
.bashrc abgearbeitet
mlz@mail:~$
Ja das ist absolut kein Problem, weil diese Einschränkung sich nicht auf ~root beziehen wird. Und wenn es funktioniert werde ich es ziemlich lange testen. Es ist nichts kritisches und der Server ist 20 Schritte entfernt.
@yeti
Programmieren kann ich leider kein Stück
@uname
Erst ein mal vielen Dank für deine Ausführliche Antwort. Nur leider ist Screen da keine alternative. Es soll nicht die Möglichkeit bestehen das sich 2x eingeloggt wird.
Viele Grüße
~T
Re: SSH - Eine Session pro Benutzer
du hast hier keine Login-Shell aufgerufen, versuchs mal mit "su - mlz" bzw gleich über sshshell4life hat geschrieben: root@mail:/home/mlz# su mlz
.bashrc abgearbeitet
mlz@mail:~$
Re: SSH - Eine Session pro Benutzer
dann müßtest Du eigentlich auch über dieses Tool eine Lockdatei erstellen können, über die ein exklusiver Zugriff gesteuert werden kann. Ich möchte dir da jetzt auch nichts drein reden ( obwohl das tu ich gerade ), mit würde diese Lösung halt sauberer vorkommenshell4life hat geschrieben: Ich brauche das für ein Tool was ich für die automatische Konfiguration von Cisco Geräten gebaut habe.
-
- Beiträge: 13
- Registriert: 17.02.2010 17:52:18
Re: SSH - Eine Session pro Benutzer
Okayyy es geht nur über die .bash_logindu hast hier keine Login-Shell aufgerufen, versuchs mal mit "su - mlz" bzw gleich über ssh
Aber meine Anforderung an die Lösung soll sich leider ein auf den SSH-Login beziehen. Ich denke es wird auf das Script hinauslaufen. Muss ich die Tage einfach mal probieren zu schreiben.
Viele Grüße
~T
Re: SSH - Eine Session pro Benutzer
mach mal ein "touch ~/.bash_profile", dann sollte es eigentlich nimmer mehr gehenshell4life hat geschrieben: Okayyy es geht nur über die .bash_login
( die ~/.bash_login sollte nur verwendet werden, wenn es keine ~/.bash_profile gibt )
Re: SSH - Eine Session pro Benutzer
Den einfachen shell-Hack stelle ich mir so vor, /etc/profile.local und/oder /etc/bash.bashrc.local :
Noch eine Idee.
sshd_config:/usr/local/bin/sshlogintest.sh :
in /etc/sudoers.local so etwas:
Eventuell funktioniert der einfache Aufruf des Scripts nicht, dann muß vielleicht mit 'sh -c Script' kombiniert werden.
Aber wie wird der User wieder aus istschondrin ausgetragen?
~/.bash_logout mit einem sudo-Script?
Ein cron-Job, der auf die User in istschondrin mit 'who' prüft, und gegebenenfalls austrägt?
Code: Alles auswählen
grep "$USER" /etc/ssh/allowed.list || {
test $(who | grep "$USER" | wc -l) -gt 1 && logout
}
Noch eine Idee.
sshd_config:
Code: Alles auswählen
DenyGroups istschondrin
ForceCommand /usr/local/bin/sshlogintest.sh
Code: Alles auswählen
#!/bin/sh
/usr/bin/grep -r "$SUDO_USER" /etc/ssh/allowed.list && exit
/usr/sbin/usermod --append -G istschondrin "$SUDO_USER"
Code: Alles auswählen
User_Alias SSHLOGINGROUP=ALL
Cmnd_Alias SSHLOGINTEST="/usr/local/bin/sshlogintest.sh"
SSHLOGINGROUP hostname=NOPASSWD:SSHLOGINTEST
Aber wie wird der User wieder aus istschondrin ausgetragen?
~/.bash_logout mit einem sudo-Script?
Ein cron-Job, der auf die User in istschondrin mit 'who' prüft, und gegebenenfalls austrägt?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-
- Beiträge: 13
- Registriert: 17.02.2010 17:52:18
Re: SSH - Eine Session pro Benutzer
Ich Danke Dir.
Nun ist ja immerhin schon mal klar wie das Script aufgerufen wird. Aber da werde ich selber sobald ich mehr Zeit habe testen.
Viele Grüße
~T
Nun ist ja immerhin schon mal klar wie das Script aufgerufen wird. Aber da werde ich selber sobald ich mehr Zeit habe testen.
Viele Grüße
~T
Re: SSH - Eine Session pro Benutzer
Autsch!shell4life hat geschrieben:Code: Alles auswählen
root@mail:/home/mlz# cat /etc/passwd | grep mlz mlz:x:50014:50014::/home/mlz:/bin/bash
grep kann direkt aus Dateien lesen, mach bitte in Zukunft lieber sowas:
Code: Alles auswählen
grep mlz /etc/passwd
Code: Alles auswählen
getent passwd mlz
-
- Beiträge: 13
- Registriert: 17.02.2010 17:52:18
Re: SSH - Eine Session pro Benutzer
Hi,
@rendegast
die Lösung funktioniert im Grunde schon mit dem Einzeiler in der .bash_login Damit muss ich mal hin und her testen.
test $(who | grep "$USER" | wc -l) -gt 1 && echo "The user $USER is already logged in. You will be disconnected in 5 seconds" && sleep 5 && logout
Dazu probiere ich noch die IP-Adresse zu zeigen welche sich bereits eingeloggt hat. Mal schauen wo ich die rausziehen kann. Bitte fragt jetzt nicht nach dem Sinn Ich finde es halt nett wenn sie angezeigt wird.
Der nächste Punkt wird das der angemeldete User nichts im System machen darf ausser was ich ihm zuteile. Er soll nichtmal in der Lage sein über TAB-completion den Inhalt von /etc anzeigen lassen. Da bin ich bei meiner Suche auf die rbash gestoßen. Gut, bei der rbash ist er schon eingeschränkt, aber es gibt noch einen Haufen Kommandos die er absetzen kann. Die würde ich wiederrum mit einem alias belegen der Beispielsweise alias top='restricted!' heißen wird. Die PATH Variable wird dann einfach auf /home/mlz/bin gesetzt und die Dateien die benötigt werden für die Anmeldeüberprüfung kommen dort rein.
@ThorstenS Danke, werde ich mir angewöhnen.
Aber allen bis hier erstmal vielen Dank, das hat mir sehr geholfen!
Viele Grüße
~T
@rendegast
die Lösung funktioniert im Grunde schon mit dem Einzeiler in der .bash_login Damit muss ich mal hin und her testen.
test $(who | grep "$USER" | wc -l) -gt 1 && echo "The user $USER is already logged in. You will be disconnected in 5 seconds" && sleep 5 && logout
Dazu probiere ich noch die IP-Adresse zu zeigen welche sich bereits eingeloggt hat. Mal schauen wo ich die rausziehen kann. Bitte fragt jetzt nicht nach dem Sinn Ich finde es halt nett wenn sie angezeigt wird.
Der nächste Punkt wird das der angemeldete User nichts im System machen darf ausser was ich ihm zuteile. Er soll nichtmal in der Lage sein über TAB-completion den Inhalt von /etc anzeigen lassen. Da bin ich bei meiner Suche auf die rbash gestoßen. Gut, bei der rbash ist er schon eingeschränkt, aber es gibt noch einen Haufen Kommandos die er absetzen kann. Die würde ich wiederrum mit einem alias belegen der Beispielsweise alias top='restricted!' heißen wird. Die PATH Variable wird dann einfach auf /home/mlz/bin gesetzt und die Dateien die benötigt werden für die Anmeldeüberprüfung kommen dort rein.
@ThorstenS Danke, werde ich mir angewöhnen.
Aber allen bis hier erstmal vielen Dank, das hat mir sehr geholfen!
Viele Grüße
~T
Re: SSH - Eine Session pro Benutzer
Hat noch niemand PAM vorgeschlagen? Ein in der PAM-Konfiguration für SSH und in /etc/security/limits.conf sollte auch funktionieren. Setzt natürlich voraus daß SSH PAM verwendet.
Details: http://www.kernel.org/pub/linux/libs/pa ... imits.html
Code: Alles auswählen
session required pam_limits.so
Code: Alles auswählen
<username> hard maxlogins 1
Details: http://www.kernel.org/pub/linux/libs/pa ... imits.html
-
- Beiträge: 13
- Registriert: 17.02.2010 17:52:18
Re: SSH - Eine Session pro Benutzer
Ok,
die IP-Adresse steht in einer Variable:
SSH_CLIENT='172.10.10.23 14596 22'
Das Script fügt jetzt diese Variable auch gefiltert ein durch:
IP=`echo $SSH_CLIENT | awk '{print $1}'`
test $(who | grep "$USER" | wc -l) -gt 1 && echo "The user $USER is already logged in with IP $IP . You will be disconnected in 5 seconds" && sleep 5 && logout
Jetzt habe ich einfach mal innerhalb der 5 Sekunden STRG-C gedrückt und man bricht aus und bekommt den Prompt. Mal doof gefragt, gibt es eine möglichkeit die Tastatur komplett zu deaktivieren in einer Login-Shell? Der Sinn ist frei, nur geht das?
@ goeb
Hey die Möglichkeit ist auch echt sehr gut, kennst Du da eine Möglichkeit der Benachrichtigung das der Benutzer schon 1x eingeloggt ist?
Viele Grüße
~T
die IP-Adresse steht in einer Variable:
SSH_CLIENT='172.10.10.23 14596 22'
Das Script fügt jetzt diese Variable auch gefiltert ein durch:
IP=`echo $SSH_CLIENT | awk '{print $1}'`
test $(who | grep "$USER" | wc -l) -gt 1 && echo "The user $USER is already logged in with IP $IP . You will be disconnected in 5 seconds" && sleep 5 && logout
Jetzt habe ich einfach mal innerhalb der 5 Sekunden STRG-C gedrückt und man bricht aus und bekommt den Prompt. Mal doof gefragt, gibt es eine möglichkeit die Tastatur komplett zu deaktivieren in einer Login-Shell? Der Sinn ist frei, nur geht das?
@ goeb
Hey die Möglichkeit ist auch echt sehr gut, kennst Du da eine Möglichkeit der Benachrichtigung das der Benutzer schon 1x eingeloggt ist?
Viele Grüße
~T
Re: SSH - Eine Session pro Benutzer
Die Idee mit PAM finde ich gut. Die ".bash_login" bekommt man im Zweifelsfall wohl immer kaputt. Bei ".bash_profile" kann man z.B. direkt CTRL+C beim anmelden drücken, damit es nicht ausgeführt wird. Mag bei .bash_login anders sein.
Re: SSH - Eine Session pro Benutzer
Die Benachrichtigung dürfte im Nachhinein nicht mehr gehen (bzw. ich kenne keine Möglichkeit das zu realisieren), du könntest aber vor dem Loginprompt mit dem Issue-Modul eine Nachricht anzeigen die den Benutzer darauf hinweist daß falls er schon eingeloggt ist die Verbindung getrennt wird. Du kannst auch nochmal die ganzen PAM-Module durchgehen, vielleicht gibt es ja doch eine Möglichkeit...
Edit: Evtl. kannst du auch pam_exec verwenden, mit einem kleinen Shellskript, um die Issue-Datei anzupassen sobald sich ein Benutzer anmeldet. Ich würde diese Spielereien aber sein lassen und einfach darauf hinweisen daß man sich nur einmal einloggen kann.
Edit: Evtl. kannst du auch pam_exec verwenden, mit einem kleinen Shellskript, um die Issue-Datei anzupassen sobald sich ein Benutzer anmeldet. Ich würde diese Spielereien aber sein lassen und einfach darauf hinweisen daß man sich nur einmal einloggen kann.
Re: SSH - Eine Session pro Benutzer
statt /etc/issue würde ich /etc/motd nutzen
Re: SSH - Eine Session pro Benutzer
Mh, glaub nicht daß das geht:
Das Login ist ja eben nicht erfolgreich wenn das Limit überschritten wird. Kommt vielleicht auch auf die Reihenfolge in der PAM-Konfiguration an, müsste man mal ausprobieren...man motd hat geschrieben:The contents of /etc/motd are displayed by login(1) after a successful login
-
- Beiträge: 13
- Registriert: 17.02.2010 17:52:18
Re: SSH - Eine Session pro Benutzer
Hi zusammen,
abschließend fasse ich die gefundenen Lösungen zusammen. Es sind 2, wobei die Lösung mit dem Script sicherlich noch verfeinert werden muss damit es sich nicht abbrechen lässt.
abschließend fasse ich die gefundenen Lösungen zusammen. Es sind 2, wobei die Lösung mit dem Script sicherlich noch verfeinert werden muss damit es sich nicht abbrechen lässt.
Diese Lösung finde ich etwas besser da es schon gleich so im System vorhanden ist.Hiermit wird geprüft ob sich ein Benutzer schon einmal angemeldet hat und wenn er es hat, wird er ausgeloggt.
Danke rendegast!
test $(who | grep "$USER" | wc -l) -gt 1 && echo "The user $USER is already logged in. You will be disconnected in 5 seconds" && sleep 5 && logout
Danke goeb!
session required pam_limits.so
in der PAM-Konfiguration für SSH und
<username> hard maxlogins 1
in /etc/security/limits.conf sollte auch funktionieren. Setzt natürlich voraus daß SSH PAM verwendet.
Details: http://www.kernel.org/pub/linux/libs/pa ... imits.html
Re: [gelöst] SSH - Eine Session pro Benutzer
Diese Lösung finde ich auch sehr interessant.shell4life hat geschrieben:Danke goeb!
session required pam_limits.so
in der PAM-Konfiguration für SSH und
<username> hard maxlogins 1
in /etc/security/limits.conf sollte auch funktionieren. Setzt natürlich voraus daß SSH PAM verwendet.
Details: http://www.kernel.org/pub/linux/libs/pa ... imits.html
Werde ich mal ausprobieren.
Oh, yeah!
Re: [gelöst] SSH - Eine Session pro Benutzer
in der Fredüberschrift steht [GELÖST]. Kannst Du vielleicht kurz skizzieren, wie Du das jetzt hingekriegt hast? Ich finde das Thema nämlich ziemlich witzig