Newsgroup: it.comp.os.linux.sys
Titolo: curiosità su history e dintorni.

secondo voi è possibile prevenire l'utilizzo di questo comando?
$ export HISTFILE=/dev/null bash
per provare il risultato basta provare il comando su un file reale:
anche il comando "export HISTFILE=/mio/file bash" viene inserito
in /mio/file
potrei impostare in /etc/bash.bashrc la seguente direttiva:
readonly HISTFILE=~/.bash_history
però,
- l'utente una volta loggato potrebbe semplicemente lanciare:
$bash -norc (ho notato che la variabile resta, però non è più in sola
lettura)
- oppure in presenza di SSH l'utente potrebbe lanciare a sua scelta:
ssh user@host zsh
ssh user@host ksh
ssh user@host bash -norc
ok, senza contare il fatto che l'utente in presenza di ssh potrebbe
tranquillamente lanciare "ssh user@host <comando>" senza lasciare
traccia sull'history.
-- 
Wikipedia Admin: "wikipedia non è un blog"
Iosif Stalin: "i compagni hanno scambiato il partito per un circolo di
discussione"

 o non dovresti fargli usare bash (in ksh non puoi fare quelle cose).
avevo notato la cosa.


 No. Come anche "unset HISTFILE".
A me non risulta.
pippo@fuppa:~$ export PIPPO=10
pippo@fuppa:~$ readonly PIPPO
pippo@fuppa:~$ export PIPPO=20
bash: PIPPO: readonly variable
pippo@fuppa:~$ unset PIPPO
bash: unset: PIPPO: cannot unset: readonly variable
pippo@fuppa:~$
-- 
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.

pippo@fuppa:~$
[~]dalet_$: export PIPPO=10
[~]dalet_$: bash
dalet@e8400:~$ echo $PIPPO
10
dalet@e8400:~$ PIPPO=20
dalet@e8400:~$ echo $PIPPO
20
-- 
Saluti, Dalet

 ssh user@host bash -norc
  Potrebbe esserti utile la shell ristretta: /bin/rbash, oppure bash -r.
  Ciao,
-- 
Alessandro Selli, 
http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.
Chiave PGP/GPG: EC885A8B

Dalet ha scritto:
Ah, ma hai lasciato libera la variabile.
Se metti il readonly in profile, bashrc et similia, il risultato è
diverso:
poggir@poggirpc:~$ echo $PIPPO
10
poggir@poggirpc:~$ PIPPO=10
bash: PIPPO: readonly variable
poggir@poggirpc:~$ bash
poggir@poggirpc:~$ echo $PIPPO
10
poggir@poggirpc:~$ PIPPO=10
bash: PIPPO: readonly variable
poggir@poggirpc:~$
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

dalet@e8400:~$ echo $PIPPO
Almeno bash --norc --noprofile (si sa mai che "readonly PIPPO"
fosse in /etc/profile o simili).
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!

poggir@poggirpc:~$
Si', se root il readonly lo mette in /etc/bash.bashrc
bisogna lanciare bash con l'opzione -norc che dice LS.
Insomma in conclusione mi sembra che in un modo o nell'
altro senza selinux audit non si puo' spiare nessuno.
-- 
Saluti, Dalet

 altro senza selinux audit non si puo' spiare nessuno.
La sicurezza si può gestire a molti livelli. Selinux è indubbiamente il
metodo più efficace tra quelli proposti, ma il suo impiego non è cosa da
utente medio o da sistemista in fasce e richiede competenze ben al di
sopra della media.
D'altronde il salvataggio dell'history lo fa qualunque sysadmin e va
benissimo per il controllo degli utonti, ma può essere bypassato da un
utente sgamato.
E' una questione di scelta del giusto strumento e del bilanciamento tra
sicurezza e semplicità.


fosse in /etc/profile o simili).
Si THX! pero' una curiosita': man bash in italiano dice che
con -norc bash non legge .bashrc (o simili), invece non
legge neppure /etc/bash.bashrc, perche'?
(voglio dire: per -noprofile invece dice che non legge
neppure /etc/profile)
Ho provato e son sicuro:
[~]root_#: echo "readonly HOME" >> /etc/bash.bashrc
[~]dalet_$: bash
dalet@e8400:~$ HOME=pippo
bash: HOME: readonly variable
dalet@e8400:~$ exit
[~]dalet_$: bash -norc
dalet@e8400:~$ HOME=pippo
dalet@e8400:~$ echo $HOME
pippo
-- 
Saluti, Dalet

 
dai un'occhiata al messaggio che ti ho scritto nell'altro thread e
dimmi se sei d'accordo, o se secondo te sto sbagliando. Ho un dubbio e
invece di scazzare potresti contribuire a fugare o a confermare codesto
dubbio.


legge neppure /etc/bash.bashrc, perche'?
manpage sbagliata, direi.


>>  
mo' non so se su python è possibile impostare una sua history e via
dicendo.
Chiaro comunque che se si vuol monitorare, l'audit fa l'audit, ti
controlla semop, fopen e quant'altro, e ti dice esattamente chi ha
fatto cosa e in quale momento (anche se lo fai dal prompt di python tu
intercetti una azione sul file lanciata da tale utente), e l'history
della shell fa invece un altro mestiere, che non è proprio quello di
aggiungere sicurezza ai sistemi.
:-)


 legge neppure /etc/bash.bashrc, perche'?
Perché /etc/bash.bashrc non è un file letto da bash.
E' infatti un file source-ato da ~/.bashrc che invece *è* letto da bash.
$ head ~/.bashrc


$ head ~/.bashrc
Ma scusa la Debian dice:
# System-wide .bashrc file for interactive bash(1) shells.
pero' forse non capisco giusto, cosa vuoi dire con
source-ato? era ~/.profile che chiamava ~/.bashrc, ma io
le cose importanti le ho messe in /etc/profile per tutti,
a lui ho messo solo il promt colorato e il comando fortune.
Ecco infatti TUTTO il mio .bashrc:
-=-=-=-=-=-=-=-=-
echo ".bashrc"
echo
-=-=-=-=-=-=-=-=-
come vedi quando lancio bash lo vedo se lo legge, ho messo
echo anche in tutti gli altri file di bash.
Invece /etc/bash.bashrc l'ho lasciato al default, perche'
non c'ho capito nulla su quel che fa con TERM, completion
e package.
Ps. Be' LS me l'ha detto subito, e infatti e' sbagliata o
non aggiornata la traduzione, l'inglese invece dice proprio
/etc/bash.bashrc e ~/.bashrc (l'ho guardata adesso).
-- 
Saluti, Dalet