Um pedantisch zu sein, ist es nicht Strg + C, sondern SIGHUP
(näher an Strg + D), das die App beendet.
Sie können im Wesentlichen alles, was Sie wollen, in die Shell des Benutzers einfügen /etc/passwd
. Ersetzen Sie einfach die Standardeinstellung in der Passwd-Zeile des Benutzers (wahrscheinlich /bin/bash
) durch ein anderes Programm. Dieses Programm kann ein Skript sein, z. B. /usr/bin/tail_log_file
mit diesen Inhalten, das root: root gehört, mit umode 0755:
#!/bin/rbash
tail -f /path/to/logfile
Sie können einen anderen Interpreter als rbash verwenden. In solchen Fällen ist es jedoch ratsam, eine eingeschränkte Shell zu verwenden.
Um extrem pedantisch zu sein, sollten Sie den Pfad des Skripts hinzufügen /etc/shells
, aber ich finde normalerweise, dass es trotzdem funktioniert.
Beachten Sie auch, dass der Benutzer das Skript möglicherweise in den Hintergrund stellen oder einige Optionen ( ssh username@host bash
) verwenden und dennoch eine Shell erwerben kann. Wenn Sie den Benutzer auf diese Weise einschränken möchten, sind gute Dateisystemberechtigungen die einzige echte Lösung.
/etc/shells
besteht darin, Benutzern, die etwas anderes als Shell haben, zu ermöglichen, ihre Shell darauf einzustellen. Der Superuser (root
) kann jederzeit die Shell eines beliebigen Benutzers ändern./etc/shells
da dies dem Benutzer ermöglichen würde, seine Shell zu ändern (da/usr/bin/tail_log_file
dies dann als "uneingeschränkte Shell" betrachtet würde)!ssh erzwungene Befehle fallen Ihnen ein, wenn Sie gerne eine schlüsselpaarbasierte Authentifizierung verwenden.
quelle
Sie können ssh so konfigurieren, dass ein Befehl Ihrer Wahl ausgeführt wird, wenn Sie sich mit der Authentifizierung mit öffentlichem Schlüssel anmelden. Generieren Sie dazu ein Schlüsselpaar:
restricted-key.pub
enthält eine Zeile, die zum Einfügen in die Benutzerdatei geeignet ist~/.ssh/authorized_keys
:Sie können diesem jedoch einen Befehl hinzufügen, und ssh führt diesen Befehl aus, wenn Sie sich mit dem Schlüssel anmelden:
Dann kann der Benutzer mit zur Maschine ssh
ssh -i restricted-key
.quelle