* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Aprile 25, 2024, 11:32:12 pm

Inserisci il nome utente, la password e la durata della sessione.

624 Visitatori, 1 Utente

Autore Topic: Libreria systemusers  (Letto 15970 volte)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Libreria systemusers
« Risposta #15 il: Agosto 19, 2014, 10:19:48 pm »
già provato ma il risultato è

last --time-format iso


last: invalid option -- '-'
Usage: last [-num | -n num] [-f file] [-t YYYYMMDDHHMMSS] [-R] [-adioxFw] [username..] [tty..]

prima di consigliartelo l'ho provato...
man last
ti da qualche aiuto?

in alternativa puoi usare -t
Imagination is more important than knowledge (A.Einstein)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Libreria systemusers
« Risposta #16 il: Agosto 19, 2014, 10:22:08 pm »
PS:
Linux è open source ... e i comandi gnu altrettanto ... butto lì l'idea del porting dell'api da zero ;)

Stilgar... troppo sole fa male :D :D :D
Imagination is more important than knowledge (A.Einstein)

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Libreria systemusers
« Risposta #17 il: Agosto 19, 2014, 10:30:24 pm »

Codice: [Seleziona]
type
  TUtmp = packed record
    ut_type: short;              (* Type of record *)
    ut_pid: pid_t;               (* PID of login process *)
    ut_line: array [0..UT_LINESIZE - 1] of char; (* Device name of tty - "/dev/" *)
    ut_id: array [0..4 - 1] of char;             (* Terminal name suffix,
                                               or inittab(5) ID *)
    ut_user: array [0..UT_NAMESIZE - 1] of char; (* Username *)
    ut_host: array [0..UT_HOSTSIZE] of char; (* Hostname for remote login, or
                                               kernel version for run-level
                                               messages *)
    ut_exit: exit_status;  (* Exit status of a process
                                               marked as DEAD_PROCESS; not
                                               used by Linux init( *)
              (* The ut_session and ut_tv fields must be the same size when
                 compiled 32- and 64-bit.  This allows data files and shared
                 memory to be shared between 32- and 64-bit applications. *)
          {$if __WORDSIZE == 64 and defined __WORDSIZE_COMPAT32}
    ut_session: int32_t;           (* Session ID (getsid(2)),
                                               used for windowing *)
    ut_tv: record
      tv_sec: int32_t;           (* Seconds *)
      tv_usec: int32_t;          (* Microseconds *)
    end;                       (* Time entry was made *)
          {$else}
    ut_session: long;           (* Session ID *)
    ut_tv: timeval;        (* Time entry was made *)
          {$endif}

    ut_addr_v6: array[0..3 - 1] of int32_t;        (* Internet address of remote
                                               host; IPv4 address uses
                                               just ut_addr_v6[0] *)
    __unused: array [0..20 - 1] of char;            (* Reserved for future use *)
  end;
           
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Libreria systemusers
« Risposta #18 il: Agosto 19, 2014, 10:34:58 pm »
@nomore ... ho 3 solo birre da 0.5 in corpo :D
Sale ne uso solo al mare quando faccio il bagno ;) e quest'anno ho fatto molte docce e pochi bagni (visto i monsoni che giravano qui in veneto :D)
Intendevo il porting dell'api da zero.
Last è un comando di cui si può leggere il sorgente. Se non esiste la libreria (come in window) si può controllare e verificare cosa interessa e "modificarlo" a piacimento :p
Stavo provando a scrivere la funzione per xinyman ;)
poi torno al mio traduttore pirata :)

Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Libreria systemusers
« Risposta #19 il: Agosto 19, 2014, 10:43:57 pm »
urca ... trovo interessante l'unità utmp ...
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Libreria systemusers
« Risposta #20 il: Agosto 19, 2014, 10:47:02 pm »
BINGO:
Codice: [Seleziona]
Program testu;
uses utmp,unixutil;
Const UTMPFile = '/var/run/utmp';
var
EndOfUsers : Boolean;
m,d,y,hh,mm,ss : Word;
begin
Set_utmp_file(UTMPFile);
Writeln ('Number of utmp entries : ',number_of_utmp_entries);
set_search_parameters (Include ,All_login_types);
Read_logged_users;
Writeln ('Number of logged users : ',Number_Of_logged_users);
While More_USers do
With Get_Next_user do
begin
Writeln ('Logtype : ',login_type_names[type_of_login]);
Writeln ('Pid : ',Pid);
Writeln ('Device : ',Device);
Writeln ('TTYname : ',TTy_Name);
EpochToLocal(login_time,y,m,d,hh,mm,ss);
Writeln ('Login Time : ',y,'/',m,'/',d,' ',hh,':',mm,':',ss);
Writeln ('User Name : ',user_name);
Writeln ('Host name : ',host_name);
Write ('IP address : ',Ip_address[1],'.',Ip_address[2]);
Writeln ('.',ip_address[3],'.',ip_address[4]);
end;
end.

va bene xinyman?
Abbastanza "poco testo"?

Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Libreria systemusers
« Risposta #21 il: Agosto 19, 2014, 11:24:16 pm »
wow, bel lavoro Stilgar

@xinyman
ti tocca eliminare la chiamata del comando last con TProcess (ed includere questo sorgente nella tua classe)...
Imagination is more important than knowledge (A.Einstein)

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Libreria systemusers
« Risposta #22 il: Agosto 19, 2014, 11:27:25 pm »
Ho solo cercato un esempio di utilizzo della utmp ;)
Solo ricerca con google ;)

:p

Stilgar

PS:
Grazie
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Libreria systemusers
« Risposta #23 il: Agosto 20, 2014, 02:34:57 pm »
BINGO:
Codice: [Seleziona]
Program testu;
uses utmp,unixutil;
Const UTMPFile = '/var/run/utmp';
var
EndOfUsers : Boolean;
m,d,y,hh,mm,ss : Word;
begin
Set_utmp_file(UTMPFile);
Writeln ('Number of utmp entries : ',number_of_utmp_entries);
set_search_parameters (Include ,All_login_types);
Read_logged_users;
Writeln ('Number of logged users : ',Number_Of_logged_users);
While More_USers do
With Get_Next_user do
begin
Writeln ('Logtype : ',login_type_names[type_of_login]);
Writeln ('Pid : ',Pid);
Writeln ('Device : ',Device);
Writeln ('TTYname : ',TTy_Name);
EpochToLocal(login_time,y,m,d,hh,mm,ss);
Writeln ('Login Time : ',y,'/',m,'/',d,' ',hh,':',mm,':',ss);
Writeln ('User Name : ',user_name);
Writeln ('Host name : ',host_name);
Write ('IP address : ',Ip_address[1],'.',Ip_address[2]);
Writeln ('.',ip_address[3],'.',ip_address[4]);
end;
end.

va bene xinyman?
Abbastanza "poco testo"?

Stilgar

Lo avevo già provato ma questo è il risultato

Codice: [Seleziona]
francesco@netbook-mint ~/Documenti/Lazarus/test2utmp $ sudo  ./project1 
[sudo] password for francesco:
Number of utmp entries : 10
Number of logged users : 2
Logtype : Boot time
Pid : 0
Device :
TTYname :
Login Time : 1970/1/1 2:0:0
User Name :
Host name :
IP address : 0.0.0.0
Logtype : Run level
Pid : 0
Device :
TTYname :
Login Time : 1970/1/1 2:0:0
User Name :
Host name :
IP address : 0.0.0.0
Logtype : Login process
Pid : 0
Device : ty4
TTYname :
Login Time : 1970/1/1 2:0:0
User Name :
Host name :
IP address : 0.0.0.0
Logtype : Login process
Pid : 0
Device : ty5
TTYname :
Login Time : 1970/1/1 2:0:0
User Name :
Host name :
IP address : 0.0.0.0
Logtype : Login process
Pid : 0
Device : ty2
TTYname :
Login Time : 1970/1/1 2:0:0
User Name :
Host name :
IP address : 0.0.0.0
Logtype : Login process
Pid : 0
Device : ty3
TTYname :
Login Time : 1970/1/1 2:0:0
User Name :
Host name :
IP address : 0.0.0.0
Logtype : Login process
Pid : 0
Device : ty6
TTYname :
Login Time : 1970/1/1 2:0:0
User Name :
Host name :
IP address : 0.0.0.0
Logtype : Login process
Pid : 0
Device : ty1
TTYname :
Login Time : 1970/1/1 2:0:0
User Name :
Host name :
IP address : 0.0.0.0
Logtype : User process
Pid : 0
Device : ty8
TTYname :
Login Time : 1970/1/1 2:0:0
User Name :
Host name :
IP address : 0.0.0.0
Logtype : User process
Pid : 0
Device : ts/2
TTYname :
Login Time : 1970/1/1 2:0:0
User Name :
Host name :
IP address : 0.0.0.0

Ovvero nessun dato utile
Ieri è passato, domani è futuro, oggi è un dono...

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Libreria systemusers
« Risposta #24 il: Agosto 20, 2014, 02:35:45 pm »
EpochToLocal(login_time,y,m,d,hh,mm,ss); Writeln ('Login Time : ',y,'/',m,'/',d,' ',hh,':',mm,':',ss);


Login Time : 1970/1/1 2:0:0
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Libreria systemusers
« Risposta #25 il: Agosto 20, 2014, 02:36:46 pm »
già provato ma il risultato è

last --time-format iso


last: invalid option -- '-'
Usage: last [-num | -n num] [-f file] [-t YYYYMMDDHHMMSS] [-R] [-adioxFw] [username..] [tty..]

prima di consigliartelo l'ho provato...
man last
ti da qualche aiuto?

in alternativa puoi usare -t

Non sono riuscito a farlo funzionare nemmeno con -t
Ieri è passato, domani è futuro, oggi è un dono...

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Libreria systemusers
« Risposta #26 il: Agosto 20, 2014, 04:49:34 pm »
Sul mio pc ho risolto così, mi testereste il sorgente anche sulle vostre versioni linux? E mi date un riscontro? Grazie mille
Ieri è passato, domani è futuro, oggi è un dono...

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Libreria systemusers
« Risposta #27 il: Agosto 20, 2014, 05:11:25 pm »
Ora mi piacerebbe inserire una funzione che faccia la verifica se l'utente e la password inseriti sono corretti. Ideee al riguardo?

Lo scopo sarebbe realizzare programmi che usino lo stesso username e password dell'accesso al sistema così da semplificare la vita agli utenti e non doversi ricordare mille password...

Ieri è passato, domani è futuro, oggi è un dono...

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Libreria systemusers
« Risposta #28 il: Agosto 20, 2014, 07:25:40 pm »
mi sa tanto che tocca fare un approccio alla Stilgar, ovvero:
vedere cosa fanno i sorgenti di passwd
Imagination is more important than knowledge (A.Einstein)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Libreria systemusers
« Risposta #29 il: Agosto 20, 2014, 07:38:27 pm »
mi sa tanto che tocca fare un approccio alla Stilgar, ovvero:
vedere cosa fanno i sorgenti di passwd
Lo credo pure io, ma non ho voglia di farmi uno sbattone, ora vedo che fare...

anche perchè ho appena trovato questa cartella nei sorgenti fifpc

/usr/share/fpcsrc/2.6.4/packages/users/examples/

e mi sta iniziando a montare un certo qual nervoso...anche se i sorgenti per testare la password non mi funzionano...grrrrrrrrrrrrrrrrrrrrr
Ieri è passato, domani è futuro, oggi è un dono...

 

Recenti

How To

Utenti
Stats
  • Post in totale: 18772
  • Topic in totale: 2233
  • Online Today: 643
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 1
Guests: 624
Total: 625

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.