Bisakah saya mencatat aktivitas vi?

10

Apakah ada metode untuk mencatat aktivitas vi? Saya menduga bahwa pengguna lain mengeluarkan perintah dengan masuk ke shell di dalam editor vi, ternyata perintah itu tidak mencatat ke dalam sejarah.

vnix27
sumber

Jawaban:

6

Anda juga dapat mengaktifkan proses akuntansi (s / can / should /!)

Anda kemudian dapat menggunakan:

lastcomm(1)

untuk melihat perintah dijalankan dan jika mereka dijalankan setelah garpu, dengan atau tanpa exec.

Dikombinasikan dengan IDS berbasis host, ini akan memberi Anda apa yang Anda butuhkan "agar keadilan Raja dapat dilakukan padanya."

chiggs
sumber
+1 untuk poin bagus tentang akuntansi.
Phil Hollenback
7

Bagaimana Anda mencatat aktivitas mereka sekarang? Cara termudah adalah dengan memblokirnya agar tidak meluncurkan shell dari vi.

# vi /home/user/.exrc
set exrc
set shell=/bin/false
# chown root:root /home/user/.exrc
# chmod 644 /home/user/.exrc
# chattr +i /home/user/.exrc

Jika Anda menggunakan shell khusus untuk mencatat perintah mereka, Anda bisa mengubah vi untuk menggunakan shell itu saja.

Steven
sumber
+1 untuk cara sederhana yang bagus untuk membatasi akses vi.
Phil Hollenback
2
tetapi terlihat mudah untuk memotong: "vim -u / dev / null".
jlliagre
Ya, ini pada dasarnya merupakan masalah yang tidak dapat diselesaikan. Begitu seseorang mendapatkan akses ke sistem Anda melalui login, mereka dapat menumbangkan mesin. Yang terbaik yang dapat Anda lakukan adalah membuatnya sangat sulit.
Phil Hollenback
4

Apakah Anda berbicara tentang sejarah shell? vi shell mode ( :sh) meluncurkan shell default pengguna Jika itu bash maka Anda dapat memastikan bahwa pencatatan riwayat selalu diaktifkan dengan mengedit global / etc / bashrc dan menambahkan:

set HISTFILE=~/.bash_history
shopt -s histappend
PROMPT_COMMAND='history -a'

yang akan memastikan bahwa setiap perintah pengguna masuk ke file, tidak ditimpa, dan diperbarui setiap kali prompt shell muncul.

Perhatikan bahwa pengguna dapat menimpa ini secara pribadi ~/.bashrcsehingga ini bukan jaminan mutlak bahwa penebangan akan terjadi.

Beberapa versi vi (seperti nvi) mendukung mode aman yang menonaktifkan akses shell, melalui starting vi as nvi -S. Anda dapat mengatur alias global /etc/bashrcuntuk memaksa mode ini secara default juga.

Perhatikan bahwa secara umum masalah pengguna mendapatkan shell melalui cara yang tidak terduga adalah masalah unix klasik. Tidak ada cara untuk menonaktifkan ini sepenuhnya, yang terbaik yang dapat Anda lakukan adalah mencoba membatasi akses secara default. Pengguna yang canggih (atau bahkan pengguna yang tahu cara menggunakan google) selalu dapat mengatasi batasan ini. Misalnya, jika pengguna tidak ingin riwayat shell-nya dicatat, ia selalu dapat mengeksekusi salinan baru shell dengan opsi apa pun yang ingin ia gunakan.

Berikut besar Langgan tentang bagaimana untuk memaksa logging di bash dan cara-cara yang penebangan dapat dielakkan.

Akhirnya, apakah Anda dianggap hanya berbicara dengan pengguna untuk menentukan apa yang mereka lakukan? 99% dari waktu komunikasi verbal yang sederhana dapat menjernihkan kebingungan. Jika Anda mencatat aktivitas pengguna ini karena Anda tidak mempercayai mereka, mungkin Anda dapat berbicara dengan mereka tentang masalah Anda.

Phil Hollenback
sumber