Der Computer wird von drei Benutzern (+1 Administrator) verwendet und sie verwenden die Unity-Anmeldung. Die drei Benutzer kommen, benutzen den Computer und melden sich ab. Ich muss bei jeder Anmeldung einige Anweisungen, Neuigkeiten und Details geben.
Ich möchte ein Dienstprogramm / Tool haben, mit dem ich jedem Benutzer eine benutzerdefinierte Nachricht eingeben kann. Die neueste Nachricht wird dann auf dem Desktop (für jeden Benutzer) (mit dem Datum meiner letzten Bearbeitung) für beispielsweise 10-15 Sekunden angezeigt. Eine Kopie des Textes kann auch (für den Benutzer) irgendwo mit allen Nachrichten und Daten wie einem Protokoll verfügbar sein.
* Der Administrator hat SSH-Zugriff auf das System.
Ich bin mir nicht sicher, ob dies möglich ist (und vielleicht suche ich zu viel!).
quelle
Antworten:
Sie können dies in der folgenden Konfiguration tun, die ein halbtransparentes Fenster erzeugt, das für eine beliebige Zeit bleibt:
Erstellen Sie in einem (beliebigen) Verzeichnis, in dem jeder der Benutzer zumindest hat lesen Berechtigungen für jeden Benutzer eine Nachrichtendatei, genau benannt nach jedem Benutzer Benutzernamen (Login - Namen), ohne Erweiterung, zB
Fügen Sie der Datei Text als Nachricht hinzu. Wenn Sie zunächst eine neue Nachricht hinzufügen
###
, zeigt das Skript automatisch die letzte Nachricht an. Der Text kann alles enthalten, was Sie möchten. Er sieht genauso aus, wie Sie ihn in die Datei eingefügt haben.Die neueste Nachricht wird als
latest_message.txt
Referenz in das Home-Verzeichnis des Benutzers kopiert .So wie es ist, bleibt das Fenster 15 Sekunden lang, aber Sie können es auf einen beliebigen Wert einstellen, selbst wenn es automatisch von der Länge des Textes abhängt.
Eine Beispieldatei könnte folgendermaßen aussehen:
Die Nachricht würde dann so aussehen:
Kopieren Sie das folgende Skript in eine leere Datei und bearbeiten Sie im Kopfbereich Ihres Skripts den Pfad zu dem Ordner, in dem Sie die Nachrichten des Benutzers speichern. Speichern Sie das Skript wie
show_personalmessage
in (zB)/usr/local/bin
(das in sein sollte$PATH
und machen Sie es ausführbar (!) (Keine Erweiterung)Erstellen Sie einen Launcher in
/etc/xdg/autostart
Der Schlaf 10 soll sicherstellen, dass der Desktop "bereit" ist, das Fenster zu öffnen.
Erläuterung
/etc/xdg/autostart
Ausführungsbefehlen für jeden Benutzer bei der Anmeldung.show_personalmessage
) aus, das in dem von Ihnen definierten Verzeichnis nach der personalisierten Nachricht sucht. Zusätzlich. Die letzte Nachricht wird in das Home-Verzeichnis des Benutzers kopiert.getpass
Moduls sogar benutzerspezifisch festgelegt werden , sodass das Skript (Fenster) in einem Verzeichnis nach einer benutzerspezifischen benannten Datei sucht. Bitte erwähnen Sie, ob dies erforderlich wäre.zusätzlich
Das (Gtk) Fenster
etc, etc ...
BEARBEITEN
Um Zeit zu sparen, schreiben Sie Nachrichten, wie im Chat beschrieben , unter einer Version des Skripts, in der Sie einige "permanente" Abschnitte einfügen können:
premsg
, die sich direkt unter "Willkommen Benutzer x" und dem Text Ihrer Nachricht befinden sollte, undpostmsg
, das als unterer Abschnitt Ihrer Nachricht kommt.Beide Abschnitte können einfach durch Festlegen
""
eines Werts auf "Keine" gesetzt werden.Das Skript
Hinweis
Natürlich, genau wie der Nachrichtenkörper kann gegenüber dem Vorjahr des Skript ändern , um die Pre- und Post - Nachrichten aus einer Datei zu lesen, die es noch bequemer zu halten macht. Hat es aus Gründen der Einfachheit in der Antwort so gefallen?
quelle
getpass
dann verwenden, damit jeder Benutzer die genannte Datei atomatisch anfordert. Welchen Weg würden Sie sich vorstellen? Es muss ein Pfad sein, auf den jeder Benutzer Lesezugriff hat. Warten Sie, wird in einer Minute bearbeiten .../home/message
. Es wäre gut, den letzten Nachrichtentext (Verketten usw.) in eine feste Datei (als Referenz) zuMit dem folgenden Skript kann der Administrator personalisierte Nachrichten in Form eines vom
username_mm_dd_yyyy.txt
Administrator definierten Verzeichnisses speichern . Benutzernamen werden automatisch ermittelt und mit dem Dateinamen und dem Datum der anzuzeigenden Datei abgeglichen.Das Skript kann auch einen
.desktop
Eintrag haben , der in das/etc/xdg/autostart
Verzeichnis gestellt werden soll. Dadurch wird das Skript für jeden Benutzer angezeigt. Alternativ können Sie die.desktop
Datei in das~/.config/autostart
Verzeichnis jedes einzelnen Benutzers einfügen.Unten sehen Sie eine kleine Demo des Skripts in Aktion. Ich habe die Datei im angegebenen Format in meinem
/tmp
Ordner erstelltquelle
/home/message
. Es wäre gut, die aktuelle Nachrichtendatei zu kopieren und dort als Referenz aufzubewahren.cp
Befehl hinzuzufügen. Das erste Argument ist die Kopie des Administrators und das zweite Argument, das/home/$( _get_username )/messages/$FILE.txt
ich zum Schlafen brauche, aber das kann ich am Morgen hinzufügen. Es ist nur eine Zeile.cat $FILE >> /home/$( _get_username )/messages/Log_of_all_messages. txt