In dem ich halb Kontext zur Verfügung stelle, halb schimpfe
Sie stoßen auf ein Beispiel für den Hauptgrund, warum ich Solaris-Systeme nicht gerne verwalte: Nichts ist jemals einfach.
Ich weiß nicht, ob das Gebietsschema wirklich etwas anderes tun wird, als die Reihenfolge bestimmter Teile des Zeitstempels zu ändern. Ich bin interessiert, ob jemand einen Weg kennt, Solaris dazu last
zu bringen, das Jahr zu geben, aber ich werde nicht den Atem anhalten. Suns Mantra für die Softwareentwicklung scheint "It Technically Works" gewesen zu sein.
Sun scheint so ziemlich alles bis zu dem Punkt entwickelt zu haben, der absolut von ihnen verlangt wird, und hat dann dort so ziemlich aufgehört. Sie erhalten also allgemein akzeptierte Lösungen wie diese und führen nur eine Liste mit Problemumgehungen für häufig auftretende Probleme.
Der einzige Weg , den ich je gefunden habe , dies zu tun , ist zu verwenden , um /usr/lib/acct/fwtmp
den gesamten Inhalt der Dump /var/adm/wtmpx
auf ein Rohr in ein anderes Programm , dass ich für die Manipulation der Textausgabe verwenden ( grep
, tac
, sed
, usw.).
Bonus: Da das Suchen nach dem Ende der Datei und das Zurückbewegen um die festgelegte wtmpx
Datensatzlänge zu viel verlangt, fwtmp
kann nur der Inhalt wtmpx
so ausgedruckt werden, wie er in der Datei erscheint. Sie müssen also (wahrscheinlich tac
) andere Mittel verwenden, um die Zeilen umzukehren, es sei denn, Sie interessieren sich tatsächlich für die ältesten Informationen (was der am wenigsten wahrscheinliche Anwendungsfall ist, aber ich schweife ab).
Abhängig davon, wie lange Ihr System in Betrieb war, kann wtmpx
es sehr groß sein. Vielleicht möchten Sie sich eine Tasse Kaffee holen, nachsehen, ob Ihre Reifen zu wenig Luft haben, und vielleicht ein oder zwei Bücher lesen, während Sie unterwegs sind daran.
Die tatsächliche Antwort auf Ihre Frage:
Dies ist ein Befehl, der last
auf eine Weise emuliert wird, die für die meisten Benutzer von Anmeldedatensätzen verwendet werden kann:
# cat /var/adm/wtmpx | /usr/lib/acct/fwtmp | tac | head
Sie werden feststellen, dass ich mich melden muss, wtmpx
da sie Ihnen nicht die Möglichkeit geben, nur die Datei zu geben fwtmp
. Das liegt daran, dass es in stdin
den meisten Anwendungsfällen über Technically Works ™ eingespeist wird und sie nicht ein paar zusätzliche Codezeilen schreiben müssten. Also würden sie Admins lieber dazu bringen, das zu tun.
Dies ist eine Beispielausgabe des oben genannten auf einem der Systeme, die ich betreue:
[root@atum root]# cat /var/adm/wtmpx | /usr/lib/acct/fwtmp | tac | head
jadavis6 ts/1 pts/1 19410 7 0000 0000 1382723864 157168 0 19 ditirlns01.xxx.edu Fri Oct 25 13:57:44 2013
jadavis6 sshd 19404 7 0000 0000 1382723864 133973 0 19 ditirlns01.xxx.edu Fri Oct 25 13:57:44 2013
oracle sshd 6640 8 0000 0000 1382713401 157107 0 0 Fri Oct 25 11:03:21 2013
oracle ts/1 pts/1 6647 8 0000 0000 1382713401 150489 0 0 Fri Oct 25 11:03:21 2013
oracle ts/1 pts/1 6647 7 0000 0000 1382712445 24488 0 23 a0003040148735.xxx.edu Fri Oct 25 10:47:25 2013
oracle sshd 6640 7 0000 0000 1382712442 304729 0 23 a0003040148735.xxx.edu Fri Oct 25 10:47:22 2013
jadavis6 sshd 23537 8 0000 0000 1382560970 410725 0 0 Wed Oct 23 16:42:50 2013
jadavis6 ts/1 pts/1 23544 8 0000 0000 1382560970 404795 0 0 Wed Oct 23 16:42:50 2013
jadavis6 ts/1 pts/1 23544 7 0000 0000 1382552999 619524 0 19 ditirlns01.xxx.edu Wed Oct 23 14:29:59 2013
jadavis6 sshd 23537 7 0000 0000 1382552999 602215 0 19 ditirlns01.xxx.edu Wed Oct 23 14:29:59 2013
[root@atum root]#
BEARBEITEN:
Ich weiß, dass ich dort oben über etwas Kleines jammere, aber nach einer Weile habe ich es einfach satt, dass sich aus jeder Kleinigkeit (wie der Frage "Was ist das Jahr?") Ein einstündiges Googlefest oder etwas mehr oder weniger Stammesartiges entwickelt Wissen (wie die Existenz von fwtmp
).
last
Befehl für mich nutzlos ist. Ich habe eine andere Lösung für mein ursprüngliches Problem gefunden: Ichtouch /var/lastlogin/$USERNAME
habe meinem / etc / profile hinzugefügt , das eine Datei erstellt oder aktualisiert, wenn sich jemand anmeldet. Abgesehen davon, dass ich dieses Verzeichnis mit 777 Berechtigungen erstellen muss, entspricht dies meinen Anforderungen. Ich werde das als nächstes herausfinden.pam_exec.so
erfolgreich auf Solaris aufbaut. Wenn es eine große Sache ist, wäre das sicherer alschmod 777
.sudo
) ausprobieren oder wenn sich die Datei in ZFS befindet , können Sie die ACL so einstellen, dass Benutzer sie nur anhängen können . Ich werde weiter suchen / Brainstorming und wenn ich auf etwas Besseres komme, werde ich es dich wissen lassen. Haben Sie auch die BSM-Überwachung aktiviert? Dies ist möglicherweise vorzuziehen, da Sie Anmelde- / Abmeldeereignisse überwachen und dann die Überwachungsprotokolle durchsuchen können. Normale Benutzer können nicht darauf zugreifen.lo
Ereignissen der richtige Weg ist. Es ist eine Standardfunktion des Betriebssystems im Vergleich zu dem, was Sie tun, was für Ihren Shop spezifisch ist. Wenn Sie von einem Bus angefahren werden und dieser Sie ersetzen (oder sogar nur ergänzen) muss, sollte diese Person alles über BSM wissen und nicht manuell lernen müssen, welches System Sie zusammenstellen.GNU / Linux
last
bietet den-F
Schalter an. Es würde mich allerdings wundern, wenn Solaris dies tut.Intern sollte die
wtmp
Datei Epochenzeitstempel haben. Wenn Sie also etwas in C oder Perl schreiben möchten, können Sie Ihren eigenenlast
Befehl erstellen . Sie müssen sich die entsprechende C-Header-Datei für die Struktur ansehen. Daswtmp
ist eine "binäre" Datei und kann nicht mit Standard-Parsing-Tools ausgewertet werden.Erwägen Sie, Ihre
wtmp
Datei regelmäßig zu archivieren und abzuschneiden , damit Sie wissen, für welches Jahr sie gilt.quelle
Ich hatte einen ähnlichen Fall, benötigte aber das Anmeldedatum in meinem benutzerdefinierten Format. Das funktioniert bei mir:
quelle