หน้า 1 จากทั้งหมด 1

เทคนิคการตรวจสอบว่าไฟล์บน Linux ถูกเข้าถึง ถูกใช้ ถูกแก้ไข

โพสต์โพสต์แล้ว: 17 พ.ค. 2019 16:21
โดย nuiz
การตรวจสอบว่าไฟล์ถูกเข้าถึงเมื่อไหร่ ถูกสร้างเมื่อไหร่ ถูกแก้ไขเมื่อไหร่ เป็นอีกเทคนิคหนึ่งที่เราจะรู้ได้ว่ามีใครเข้าถึงไฟล์ที่เราสนใจหรือไม่ เข้าถึงเมื่อไหร่ เผื่อจะมีผู้ไม่หวังดีเข้ามาในเครื่องของเรา เราจะได้รู้หน่ะครับ
บน Linux รวมถึง CentOS คำสั่ง stat สามารถบอกรายละเอียดของไฟล์ที่เรากำลังสนใจได้ อาทิเช่น
- ขนาดไฟล์
- วันที่ เวลา สร้างไฟล์ เข้าถึงไฟล์ แก้ไขไฟล์
- UID (User ID ใครเป็นเจ้าของไฟล์นี้
- GUID (Group User ID กรุ๊ปไหนที่เป็นเจ้าของไฟล์นี้)
- ชนิดของไฟล์

ลองดูตัวอย่างการใช้คำสั่ง stat ดูครับ ผมจะเช็คว่ามีใครเข้ามาทำอะไรไฟล์ในโฟลเดอร์ /etc/asterisk หรือไม่ ผมก็ใช้คำสั่ง stat ตามด้วยชื่อโฟลเดอร์ /etc/asterisk แบบนี้ครับ
โค้ด: เลือกทั้งหมด
stat /etc/asterisk

ซึ่งก็จะให้ผลลัพธ์ประมาณด้านล่างนี้
โค้ด: เลือกทั้งหมด
File: /etc/asterisk
Size: 12288           Blocks: 24         IO Block: 4096   directory
Device: 803h/2051d      Inode: 6818503     Links: 2
Access: (0775/drwxrwxr-x)  Uid: (  997/asterisk)   Gid: (  994/asterisk)
Access: 2019-05-19 09:25:28.649489321 +0700
Modify: 2019-05-18 15:56:47.926332422 +0700
Change: 2019-05-18 15:56:47.926332422 +0700
Birth: -

File: /etc/asterisk ดูทั้งโฟลเดอร์
Size: 12288 คือขนาดของทุกไฟล์ในโฟลเดอร์ /etc/asterisk รวมกัน ก็ประมาณ 1.2 M ครับ ค่านี้ดูจากคำสั่ง "du -h /etc/asterisk" ก็ได้
Blocks: 24
IO Block: 4096
directory เป็นไดเร็คตอรี่ (โฟลเดอร์)
Device: 803h/2051d
Inode: 6818502
Links: 2
Access: 2019-05-19 09:25:28.649489321 +0700
Modify: 2019-05-18 15:56:47.926332422 +0700
Change: 2019-05-18 15:56:47.926332422 +0700
Birth: -

ดู 3 บรรทัดนี้ครับ Access Modify และ Change ผมลองเปิดไฟล์ /etc/asterisk/asterisk.conf ขึ้นมา เปิดเฉยๆแล้วก็ปิดไฟล์ ไม่ได้แก้ไขข้อมูลอะไรเลย ตรวจสอบ stat ใหม่ ได้ผลเป็นแบบนี้
Access: 2019-05-19 09:25:28.649489321 +0700
Modify: 2019-05-19 09:45:35.005180563 +0700
Change: 2019-05-19 09:45:35.005180563 +0700
พบว่าค่า Modify และ Change เปลี่ยนไปครับ

ด้วยหลักการนี้ เราก็รู้แล้วว่าไฟล์ถูกเปิดครั้งล่าสุดตอนไหน ถ้าเราอยากให้มีการแจ้งเตือนแบบ realtime ก็เขียนสคริปต์ให้เช็ค stat ทุก 1 นาทีหรือเร็วกว่านี้ก็ได้ แล้วแจ้งทาง email sms line ... หรือช่องทางอื่น

ตัวอย่างข้างบนผมเช็คทั้งโฟลเดอร์ /etc/asterisk ถ้าเราจะเช็คไฟล์บางไฟล์ก็ให้ระบุชื่อไฟล์ได้เลยครับ ดังตัวอย่างนี้

[root@issabel ~]# stat /etc/asterisk/sip_additional.conf
File: /etc/asterisk/sip_additional.conf
Size: 418 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 6818770 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 997/asterisk) Gid: ( 994/asterisk)
Access: 2019-05-19 09:25:28.654489299 +0700
Modify: 2019-05-19 09:25:28.631489398 +0700
Change: 2019-05-19 09:25:28.631489398 +0700

ลองประยุกต์ใช้งานดูครับ