Newsgroup: it.comp.os.linux.sys
Titolo: Log comandi shell

Ciao,
esiste una shell che logghi da qualche parte i comandi lanciati sul
sistema? Ad esempio Data,Ora,Utente,Comando andrebbe benissimo.
Oppure, in alternativa, come posso metterlo in piedi?
Grazie.
I.

 sistema? Ad esempio Data,Ora,Utente,Comando andrebbe benissimo.
bash lo fa.
man bash
/HISTTIMEFORMAT
Consiglio anche questi quattro accorgimenti:
http://www.dufault.info/blog/logging-all-bash-commands-to-history-and-keeping-people-from-deletingemptying-it/
Ovviamente questo non è un sistema "a prova di hacker". Se lo scopo
della tua richiesta è per una questione di sicurezza e non per il mero
controllo delle attività degli utonti, la risposta è selinux audit.
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

history-and-keeping-people-from-deletingemptying-it/
Scusa solo per curiosita' (io c'ho la fissa dell'history, ma
la macchina l'uso solo io) e percio' ho letto un po' il link
che dai, ma dico: l'utente briccone puo' benissimo aprire
una nuova shell, non di login, e dare tutti i comandi che
vuole senza history -- ha voglia root di cambiar attributi
al .bash_history, non resta nessuna traccia! o non e' cosi'?
-- 
Saluti, Dalet

 che dai, ma dico: l'utente briccone puo' benissimo aprire
Cosa non hai capito in
--cite--
Ovviamente questo non è un sistema "a prova di hacker". Se lo scopo
della tua richiesta è per una questione di sicurezza e non per il mero
controllo delle attività degli utonti, la risposta è selinux audit.
--cite--
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

--cite--
Adesso ho capito abbastanza, ieri avevo solo guardato il
sito del link che THe_ZiPMaN riportava, perche' parlavano
dell'history della bash, ma ora vedo che e' tutta roba che
serve per i server nel senso di reti aziendali con utenti
e amministratori veri, dunque per me e' arabo per non dire
ugro-finnico grazie e ciao.
-- 
Saluti, Dalet

 Ovviamente questo non è un sistema "a prova di hacker". 
Altro che hacker :-) Quei trucchi non servono a nulla.
Fai come dicono loro:
- lancia "chattr +x .bash_history
Adesso fai come dico io:
- entra con un utente, lancia 4 comandi di fila. In questo
momento l'history è ancora in RAM. A questo punto lancia il comando
"history -c" (comando poco documentato) e fai logout. Accedi nuovamente
e prova a cercare nell'history i comandi che avevi lanciato: MOLTO
SEMPLICEMENTE NON CI SONO.
"history -c" può essere lanciato da qualsiasi utente. Invece, l'audit
può essere eventualmente manomesso solo da root.
Laonde e per cui, si usa l'audit per questa cosa qui.
-- 
Wikipedia Admin: "wikipedia non è un blog"
Iosif Stalin: "i compagni hanno scambiato il partito per un circolo di
discussione"

 ha scritto:

devi installare il  sottosistema di audit.
occhio a configurarlo bene, perché se troppo "verbose" potrebbe
consumare parecchie risorse.


 ha scritto:

senza considerare il "bug" (?), citato nel link che hai inviato, per cui
anteponendo uno spazio al nome del comando ottieni che il comando non
viene loggato.


 viene loggato.
man bash
/HISTCONTROL


 DS del mio nipotino.
avresti dovuto impostare anche il f/u su japan.videogames.nintendo !!
Ricordatelo la prossima volta eh :-D

 Esattamente come un setting intelligente di bash.
$ scp .bash_history XXXX:/home/blabla/
e l'unica cosa che troverai sui log sarà un laconico:
Mar 31 21:52:06 XXXX sshd[26058]: pam_unix(sshd:session): session
opened for user root by (uid=0)
Mar 31 21:52:08 XXXX sshd[26058]: Received disconnect from ::1: 11:
disconnected by user
Mar 31 21:52:08 yasna sshd[26058]: pam_unix(sshd:session): session
closed for user root
che vuoi che ti dica?


 
dimenticavo: puoi aumentare la verbosity dell'scp quanto ti pare. Non
ti dirà mai quale file hai copiato. Questo, eventualmente, ancora una
volta, te lo potrebbe dire solo l'audit.


 ha scritto:

non sono interessato alla polemica. Dico semplicemente che nel post
originario non capivo se la richiesta era mirata a securizzare il
sistema, o ad usare l'history come una sorta di promemoria per se
stessi.
Chiaro comunque che qualsiasi setting dell'history non ti rende il
sistema più sicuro: resta il problema che un comando con uno
spazio anteposto al comando stesso NON viene registrato nell'history di
bash. In quella di korn si (ho provato oggi in ufficio), ma in quella
di bash no.
Questo vuol dire che l'history non serve per quello scopo.


 volta, te lo potrebbe dire solo l'audit.
man chattr
Ma stavolta leggilo se non vuoi continuare a fare figure da pirla.
Personalmente ti consiglio di desistere che fai più bella figura, o
perlomeno prova a fare quello che nella tua mente contorta dovrebbe
avere qualche effetto.
Per un utente bypassare il logging della bash così come l'ho suggerito è
banale, ci riesce qualsiasi sysadmin novellino che sappia usare man.
Tu invece stai insistendo con soluzioni che non danno alcun risultato,
facendo la figura del pirla sempre più ad ogni iterazione.
Ricorda che è meglio far silenzio e dare l'impressione di essere stolti
che parlare e confermare d'esserlo.


 Questo vuol dire che l'history non serve per quello scopo.
L'history server per tenere la cronistoria dei comandi eseguiti. Ed è
esattamente quel che ha chiesto l'OP.


Questo vuol dire che l'history non serve per quello scopo.
Scusa da me (ma mica ho reti eh, la macchina l'uso solo io),
l'history di bash mi riporta ls battuto con prima lo spazio,
ecco (dopo sloggato e riloggato tanto per non interferire)
come si vede:
65574   ls pippetto
65575  ls -l
65576  history | tail -3
Cosa vuoi dire invece tu? io cmq in /etc/profile ho:
export HISTSIZE=10000000
export HISTCONTROL=erasedups
-- 
Saluti, Dalet

 Ma stavolta leggilo se non vuoi continuare a fare figure da pirla.
non c'è bisogno che io lo legga. 'a' sta per append e si capisce da
lontano.
MA ti ho già detto che basta anteporre uno spazio per filtrare il
comando. Quindi è tutto tempo perso.


 esattamente quel che ha chiesto l'OP.
Qui ci sta eventualmente un qui pro quo sul tipo di richiesta dell'OP
e la questione non è di alcun interesse da un punto di vista tenico.
Io l'avevo intesa, magari pure erroneamente, come richiesta di
securizzare il sistema. Ma lui comunque non ha esplicitato lo scopo
della richiesta nel suo primo messaggio.


Grazie per i suggerimenti.
Ho trovato una buona soluzione, Snoopy Logger. L'ho provato e non è
malaccio.
Saluti.

 
pardon: sovrascrivere il .bash_history tramite scp da remoto.


 
è scritto nel thread sulla pagine postata da zipman. Guarda la
discussione. Non so bene quale parametro può influenzare questo
comportamento dell'history (e non ho voglia di andarlo a scoprire)
però, sulla mia macchina funziona in quel modo.


 chi se ne frega (scusami) se non hai le reti?
poi vogliamo scp localhost funziona anche senza rete, con il solo
inconveniente che andresti a scrivere il comando in una history di un
utente sempre sulla stessa macchina.
comunque le richieste devono essere fatte in modo chiaro.
L'OP deve dire:
- ho necessità che il mio sistema diventi più sicuro e a tale scopo
  blabla e blablabla
- ho, altresì, necessità, per mia comodità, per scopi che non vi
  interessano, di tenere traccia dei comandi che lancio io stesso


 The Zipman. Lo conosci?
Sì. E' quello che, da quanto tu riporti, asserisce che un setting
intelligente di bash può essere manomesso solo da root. Cosa su cui
concordo e che ovviamente rende il sistema più sicuro.
Ma ridimmi, cosa stavi dicendo tu?


 però, sulla mia macchina funziona in quel modo.
Ma che cazzo rompi i coglioni a fare allora se manco leggi quel che
viene scritto dagli altri? Hai solo la necessità ossessiva-compulsiva di
dover scrivere coglionate per passare da cretino!
f/u


chi se ne frega (scusami) se non hai le reti?
Mi spiace se ho creato confusione con questo post mio,
m'interessava (per curiosita' eh) solo la storia che dicevi
dei comandi fatti precedere da uno spazio.
Be' ora l'ho trovato il motivo:
HISTCONTROL=ignorespace
-- 
Saluti, Dalet

 comando. Quindi è tutto tempo perso.
Sei un cretino. Leggiti i man che ti ho indicato prima di scrivere
coglionate.
Se non te l'ho ancora detto sappi che sei un cretino.
-- 
Flavio Visentin
El saggio no'l sa nient, el furbo el sa poc,
l'ignorante el sa tant, el mona el sa tut!

 Se non te l'ho ancora detto sappi che sei un cretino.
sei una persona tendenzialmente astiosa che butta le discussioni 
sempre sul personale; ma il problema è comunque tuo in questo caso, 
perché io, senza astio e senza isterismi, ti ho semplicemente detto:
- dal messagio originale non si evinceva chiaramente la richiesta 
dell'OP
- i metodi per bypassare la pseudosicurezza imposta con il 
tracciamento dell'history sono banali. Più banale di tutti è la 
sovrascrittura del file da remoto con scp
- più importante di tutto, dopo tanti anni non hai ancora imparato 
che qui non si vince e non si perde niente. Cosa, questa, che io non 
evinco per nulla dal tuo tono, visto che appena non ti si da ragione 
tu inizi sempre a sbattere i piedini o - a tua scelta - a strillare 
come le checche.
Il mio suggerimento in questi casi è di invitare le persone ad andare 
a scopare. In questo caso non mi volglio permettere tanto, ma una 
cosa amichevolmente te la devo scrivere: datti 'na calmata.
E mo' basta che con il tastierino virtuale del tablet questo è il 
massimo che riesco a scrivere.

 Perché non sei buono.
Ma "non sei buono" si dice solo in Emilia che sappia io !
Sbaglio ???
Rizio

 ha scritto:

Solo una cosa: scrivo in fretta a volte dimentico di scrivere quello
che dovrei. Io ho l'impressione che il comando "chattr +a" crea
difficoltà ad essere utilizzato in questo caso, perché inibirebbe la
sovrascrittura del file anche da parte dell'utente root. Pertanto
inibirebbe il funzionamento del parametro max size per l'history.
mi sembrano sono cose buttate lì nei blog, ma non sono workaround che
possono essere presi seriamente in considerazione. 
p.s.: l'attributo 'x' minuscolo NON esiste. Quindi è inutile far
credere che il mio non è stato un errore di battitura.


 massimo che riesco a scrivere.
Magari.




anche in toscana

 Sei un cretino. Provaci invece di scrivere stupidate.
il chattr è un'idiozia scritta su un blog e non è perfettamente usabile
e va eventualmente gestito in combinazione con una procedura per
svecchiare le history. Facciamo presente anche questo.
Inoltre, vuoi che ti fornisca un altro metodo idiota per bypassare la
formidabile security della history?
To':
ssh pippo@host "mio comando che non voglio lasciare sull'history del
server"
in questo modo il comando rimarrà sull'history del tuo PC e sul server
remoto troverai il solito laconico: session opened, session closed.


 
per esempio, lanciando il seguente comando, tutto su una riga:
$ export HISTFILE=/dev/null bash
io perdo ogni tracciamento nella history. Non appare nemmeno il comando
di cui sopra.
Basta provare con un file reale invece di /dev/null e si vedrà che anche
quel comando andrà immediatamente in quel file.
A me sembra che l'history non sia stata pensata in alcun modo per
garantire una men che minima sicurezza.


 ha scritto:

gli emiliani e i toscani sono cannibali! :-)
p.s.: anche in sicilia.


 gli emiliani e i toscani sono cannibali! :-)
I vegetariani sono come degli eunuchi in un harem di brasiliane 20enni !!!
Rizio

 ha scritto:

OT per OT, da potenziale vegetariano che non sa resistere alla tentazione non
posso che quotare :-)
però occhio, cannibali a parte, i carnivori non vanno al supermercato a
comprare gli hamburger per poi cucinarli e tantomeno noi abbiamo la
dentatura dei carnivori e strappiamo brandelli di carne cruda a delle
prede che abbiamo catturato con le nostre mani.
IMHO in natura, completamente sprovvisto di tool, l'uomo sarebbe
tendenzialmente un frugivoro, che magari cambia e si adatta, come il
gatto domestico che uccide i topi senza mangiarli e si adatti ai
croccantini.
Diciamo che l'uomo è esattamente come la scimmia. E cosa mangia la
scimmia solitamente: l'unico frutto dell'amor. Quindi saremmo
leggermente onnivori, ma fondamentalmente frugivori.
/me molto poco scientifico e in vena di spararle un po' grosse, anche
se non tanto.


 garantire una men che minima sicurezza.
A te sembrano troppe cose, tutte sbagliate.


 remoto troverai il solito laconico: session opened, session closed.
Ma anche no. Pure a questo si può ovviare abbastanza facilmente senza
necessità di attivare l'auditing.


garantire una men che minima sicurezza.
In configurazione di default, effettivamente, no. Ma uno cambia
i default e qualcosina ottiene.
Leonardo
-- 
Enough, enough!  But, stranger, ere we part,
Glancing farewell to each nefarious bier,
This warning would I beg you take to heart:
There is an end to e'en the worst career!

 p.s.: anche in sicilia.
e pure in liguria
p.s. i toscani piů che cannibali, sono hannibali :D
-- 
Ciao!
liftman
www.moredifficult.org
 

 possa cambiarla. Riprova e sarai più sfortunato.
scusami ma tu mi scrivi questa cosa alle 12:20, mentre io l'avevo già
scritta alle 10:59 in altro messaggio.
Appare quindi evidente che non mi era sfuggito.


 fosse solo una necessità locale? Dai che forse fra un mese ci arrivi.
NI.
Partiamo dal presupposto che non ho privilegi root sulla macchina e tu
rimuovi qualsiasi shell alternativa dal sistema. Quindi, la storia
continua come segue.
NO, perché:
Anche ammesso che bash non sia compilabile con delle variabili builtin
tramite ./configure --blabla, è facilmente modificabile il codice per
far si che ti modifichi uno dei parametri argv[x]. Io non ho molta
dimestichezza con il C, ma 'na roba tipo:
for (i = 1; i < argc; i++) {
   if (argv[i] == "-norc") {
      fai qualcosa che non so esattamente come scrivere in C ma che in
      italiano si scrive: sega quella variabile
   }
}
Lasciamo perdere se il codice è giusto. Casomai qualcuno si volesse
cimentare.....
SI, perché:
mi scarico i sorgenti e mi compilo una shell nella mia home dir. Quando
lavoravo sulla SunRay avevo tutto il mio ambiente compilato ed
installato sulla mia home.
NO, perché:
volendo puoi montare la mia home con l'opzione noexec.
Non mi pare che sia tutto così categorico, così scontato e così semplice
come vorrebbe far credere Visentin.


 file è bloccato con chattr +a.
chattr +a richiede comunque di disabilitare la max history size e di
gestirla con eventuale accrocchio esterno. Oddio, è pure facilmente
accrocchiabile: la si schiaffa in logrotate, con una azione prerotate
che prevede un "chattr -a", e una azione postrotate che reimposta il
flag con "chatr +a".
D'altra parte, la configurazione logrotate di default e accessibile in
lettura a tutti. Se per caso avessi dimenticato di occultarla, io la
scopro e lancio un loop di mille rm al secondo su ~/.bash_history* in
prossimità delle operazioni di logrotate :-)
Ti rimando invece all'altra risposta, che ho dato a zipman e che
prevede la modifica del sorgente della shell :-)


>>
impossibile mettere limiti alla fantasia :-) Quindi se si vuole
monitorare, impossibile trovare una alternativa seria all'audit, il
quale ti traccia semop, fopen, syscall e quant'altro. Quindi da audit
becchi cosa ha fatto python e chi lo ha lanciato.


prevede la modifica del sorgente della shell :-)
No se preocupe, io sa tutto di modifiche alle shell... o alla glibc :-D
Se non volessi usare audit, magari metterei un hook in exec* e compagnia
per fare un poke a syslogd.


 - i metodi per bypassare la pseudosicurezza imposta con il tracciamento dell'history sono banali. Più banale di tutti è la sovrascrittura del file da remoto con scp
Oh, e sì che te l'ha ripetuto più volte 'man chattr'...

 Sbaglio ???
Sbagli. :)
Nun sì bbuon, in napoletano.
Nun sei bbono, in romano.
Et cetera...:)

  tantomeno noi abbiamo la dentatura dei carnivori
E i canini saranno mica lì per caso, eh?
Per altro, basta guardare i primi esempi di società umane: cacciatori-raccoglitori.
Siamo onnivori, è fuor di dubbio, ce lo dice il nostro corredo enzimatico e il fatto
che siamo incapaci di sintetizzare otto aminoacidi e che tali aminoacidi siano scarsamente
presenti nella stragrande maggioranza delle proteine vegetali dovrebbe essere un argomento
abbastanza convincente.

 $ export HISTFILE=/dev/null bash
Su, su...
$ unset HISTFILE
bash: unset: HISTFILE: readonly variable

 mi scarico i sorgenti e mi compilo una shell nella mia home dir.
Il che implica che tu abbia accesso a un compilatore e a tutte le librerie necessarie, per cominciare...

whiplash ha scritto:

E che non abbia la home montata noexec.
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

Il che implica che tu abbia accesso a un compilatore e a tutte le librerie necessarie, per cominciare...
E che tu ti possa fidare di loro. Mi ricordo la mia implementazione di
"chattr +i" - consistente nel modificare fopen() in modo che ignorasse
i file con ctime 01:23:45 (o suppergiu').
Linux 2.0.36, ce lo devo avere ancora da qualche parte :-D
Leonardo e il decennale
