Bagaimana saya bisa mengetahui pengguna mana yang menghapus direktori?

8

Server Ubuntu saya memiliki sekitar 30 pengguna aktif di dalamnya. Saya pribadi tahu semua orang menggunakan server. Baru-baru ini, beberapa teman dan saya sedang mengerjakan proyek. Kami membuat direktori baru untuk proyek ini dan karena semua orang tahu semua orang, kami tidak repot-repot melindungi pekerjaan kami di bawah banyak izin. Kita seharusnya melakukannya, karena kita bangun pagi ini untuk menemukan seseorang menghapus seluruh direktori kita.

Pekerjaan kami didukung setiap malam sehingga benar-benar bukan masalah besar untuk mengembalikan pekerjaan kami. Namun, kami ingin mencari tahu siapa yang menghapusnya sehingga kami dapat menghadapi mereka. Sejauh ini, hal terbaik yang kami temukan untuk menemukan pelakunya adalah memeriksa riwayat pesta semua orang, tetapi ini panjang dan membosankan dan kemungkinannya adalah jika ada maksud jahat di balik penghapusan direktori, pelakunya mungkin memodifikasi mereka untuk menutupi jejak mereka. (atau tentu saja mereka mungkin menggunakan shell yang berbeda).

Jadi, pada dasarnya, apa cara termudah dan tercepat untuk mengetahui siapa yang menghapus direktori?

Terima kasih sebelumnya atas waktu Anda.

Rob S.
sumber
2
Saya pikir itu tidak mungkin.
enzotib
4
Lain kali gunakan sistem kontrol versi atau SparkleShare (yang menggunakan VCS git) atau folder terenkripsi (menggunakan [gnome- ] encfs ) yang disinkronkan dengan Ubuntu One atau Dropbox.
dAnjou
@dAnjou Kami memiliki git dan subversi yang diinstal di server kami, tetapi karena kami bekerja di situs web yang kami terus-menerus tambahkan / hapus file dari itu sepertinya tidak perlu repot untuk menggunakan keduanya. Seperti yang saya singgung dalam pertanyaan saya, kita mungkin seharusnya membuat grup dan membuat direktori hanya dapat diakses oleh grup kami. Bagaimanapun, kita bisa mendapatkan semua pekerjaan kita kembali karena kita mendukungnya. Kekhawatiran saya saat ini adalah bahwa saya tidak ingin pengguna menghapus direktori pada sistem yang mereka tidak terafiliasi. Saya percaya semua pengguna saya tidak melakukan hal seperti ini sehingga ini benar-benar mengganggu saya.
Rob S.
Yap, tidak mungkin.
psusi
1
Anda dapat menonton penghapusan (atau modifikasi) file. Lihat cyberciti.biz/tips/… danman auditctl
Lekensteyn

Jawaban:

5

Saya tidak menemukan jawaban peluru ajaib untuk pertanyaan Anda; bagian dari alasan itu dirinci di sini: /superuser/178596/checking-user-command-history-in-unix

Perintah sederhana ini dapat membantu Anda melacak apa yang terjadi, mencari perintah rm & mv di semua file riwayat shell di semua direktori home pengguna:

find /home -type f -iname .*history -exec grep "rm\|mv" {} \;

Ada baiknya Anda memiliki cadangan yang valid untuk menyelamatkan Anda, tetapi saya sangat menyarankan membuat beberapa grup untuk folder proyek dan hanya menambahkan akun pengguna ke grup itu; itu akan menghemat banyak rasa sakit di masa depan.

Contoh: tambahkan grup dan tambahkan anggota tim proyek ke dalamnya

groupadd coolproject
adduser jim coolproject
adduser joe coolproject
adduser charlie coolproject

mengatur izin dengan benar secara rekursif dan menjamin akses ke depan untuk tim terlepas dari siapa yang membuat / mengedit file

chown -R yourusername:coolproject /path/to/projectdir
find /path/to/projectdir -type d -exec chmod 2775 {} \;

(2 mengatur kepemilikan grup untuk "lengket" ini memastikan pemilik grup dari setiap proyek tetap "coolproject")

find /path/to/projectdir -type f -exec chmod 664 {} \;

Semoga itu bisa membantu Anda keluar! B-)

Chad Stovern
sumber
Terima kasih! Saya memodifikasi perintah Anda untuk "find / home -type f -iname. * History -print -exec grep" rm \ | mv "{} \;" sehingga saya bisa mendapatkan nama file dari sejarah yang menghasilkan info menarik.
Rob S.
Rob luar biasa! senang saya bisa membantu. =)
Chad Stovern
1

Secara teori dimungkinkan untuk mengetahui waktu hapus, sehingga ini dapat mempersempit pengguna.

Periksa i_dtime spesifikasi ext2 .

mengatur
sumber