Rumah > Artikel > Operasi dan penyelenggaraan > Cara menggunakan fungsi rakaman perintah sejarah shell linux
Di bawah Linux, anda boleh menggunakan perintah sejarah untuk melihat semua operasi sejarah pengguna Pada masa yang sama, rekod operasi arahan shell disimpan dalam fail .bash_history dalam direktori pengguna secara lalai. Melalui fail ini, anda boleh menanyakan sejarah pelaksanaan perintah shell, yang membantu kakitangan operasi dan penyelenggaraan menjalankan audit sistem dan penyelesaian masalah Pada masa yang sama, selepas pelayan diserang oleh penggodam, anda juga boleh menanyakan operasi perintah sejarah penggodam. log masuk ke pelayan. Walau bagaimanapun, selepas penggodam menyerang, untuk memadamkan kesan, mereka akan memadamkan fail .bash_history Ini memerlukan sandaran yang munasabah bagi fail ini.
Arahan sejarah lalai hanya boleh melihat rekod operasi sejarah pengguna, tetapi ia tidak dapat membezakan masa setiap pengguna mengendalikan arahan itu. Ini agak menyusahkan untuk menyelesaikan masalah. Penyelesaiannya adalah dengan menambah empat baris berikut pada fail /etc/bashrc untuk membenarkan arahan sejarah secara automatik merekodkan masa pelaksanaan semua arahan shell:
Salin kod Kod adalah seperti berikut:
histfilesize=4000
histize=4000
histtimeformat='%f %t'
export histtimeformat
histfilesize mewakili jumlah bilangan rekod untuk menyimpan arahan fail .bash_history Nilai lalai ialah 1000 Mentakrifkan jumlah bilangan rekod keluaran oleh perintah sejarah mentakrifkan format paparan masa, yang sama dengan "+"%f %t"" selepas arahan tarikh; histtimeformat digunakan sebagai pembolehubah masa sejarah untuk menghantar nilai kepada arahan sejarah.
Petua Lanjutan
Walaupun yang di atas boleh merekod masa, ia tidak boleh digunakan untuk tujuan audit dan mudah diusik atau hilang oleh penggodam. Kaedah berikut merekodkan secara terperinci pengguna yang telah log masuk ke sistem, alamat IP, arahan shell dan masa operasi terperinci. Dan simpan maklumat ini dalam bentuk fail di tempat yang selamat untuk pengauditan sistem dan penyelesaian masalah.
Masukkan kod berikut ke dalam fail /etc/profile untuk mencapai fungsi di atas.
Salin kod Kod adalah seperti berikut:
#record history operation
user_ip=`who -u am i 2>/dev/null |awk '{print $ nf}' |sed -e 's/[()]//g'`
logname=`who -u am i |awk '{print $1}'`
histdir=/user/share/. sejarah
jika [ -z $user_ip]
maka
user_ip=`nama hos`
fi
jika [ ! -d $histdir]
maka
mkdir - p $histdir
chmod 777 $histdir
fi
jika [ ! -d $histdir/${nama log}]
maka
mkdir -p $histdir/${nama log}
chmod 300 $histdir/${logname}
fi
export histsize=4000
dt=`date +"%y%m%d_%h%m%s "`
eksport histfile="$histdir/${logname}/${user_ip}.history.$dt"
eksport histtimeformat="[%y.%m.%d %h:%m:% s]"
chmod 600 $histdir/${logname}/*.history* 2>/dev/null
Atas ialah kandungan terperinci Cara menggunakan fungsi rakaman perintah sejarah shell linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!