Hiểu về Inodes trên Unix / Linux

0
inode là gì

Inode (index node) là một khái niệm nền tảng trong các filesystem Linux và UNIX. Mỗi đối tượng trong filesystem đều được thể thiện bởi một inode. Nhưng đối tượng ở đây là gì? Chúng ta sẽ tìm hiểu một cách đơn giản hoon. Mỗi và mọi file trên Linux (và UNIX) đều có những thuộc tính sau:

  • File type (executable, block special etc)
  • Permissions (read, write etc)
  • Owner
  • Group
  • File Size
  • File access, change and modification time (nên nhớ UNIX không bao giờ lưu trữ thời gian tạo file)
  • File deletion time
  • Number of links (soft/hard)
  • Các thuộc tính mở rộng như chỉ append hoặc không ai có thể xóa file bao gồm của user root.
  • Access Control List (ACLs)

Tất cả những thông tin trên được lưu trữ trong một inode. Nói một cách ngắn gọn, inode xác định file và các thuộc tính của nó (ở bên trên). Mỗi inode được xác định bởi một số inode duy nhất bên trong filesystem. Inode cũng được biết đến với thuật ngữ “index number“.

Inode là gì?

Inode là một cấu trúc dữ liệu trên các filesystem UNIX truyền thống như UFS hoặc ext3. Inode lưu trữ các thông tin cơ bản về file, thư mục thông thường hay đối tượng filesystem khác.

Xem thêm: hướng dẫn tăng số inode

Làm sao để xem số inode của file?

Bạn có thể sử dụng lệnh ls -i để xem số inode của một file như sau:

$ ls -i /etc/passwd

Bạn sẽ thấy kết quả tương tự như sau:

52640 /etc/passwd

Trong đó: 52640 là số inode

Bạn cũng có thể dùng lệnh stat để kiểm tra số inode và thuộc tính của nó:

$ stat /etc/passwd

Bạn sẽ thấy kết quả tương tự như sau:

  File: /etc/passwd
  Size: 3279      	Blocks: 8          IO Block: 4096   regular file
Device: 10304h/66308d	Inode: 4214946     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-02-23 13:48:09.720605381 +0700
Modify: 2020-02-21 13:48:06.581029563 +0700
Change: 2020-02-21 13:48:06.581029563 +0700
 Birth: -

Ứng dụng thực tế của Inode

Có rất nhiều lệnh khác nhau được sử dụng bởi các nhà quản trị hệ thống UNIX / Linux để kiểm tra số inode tới 1 file được chỉ định. Chúng ta sẽ làm một bài test đơn giản để xem ứng dụng thực tế của số inode. Bạn hãy gõ vào dòng lệnh sau đây:

$ cd /tmp
$ touch \"la*
$ ls -l

Bạn không thể nào xóa đi các file được tạo ra với các ký tự đặc biệt như ví dụ ở trên như là ?, *, ^,.. Lúc này bạn phải sử dụng đến số inode để xóa file này đi.

5/5 (4 Reviews)