Hệ thống tập tin và thư mục trên Linux

Các thư mục và hệ thống tập tin

Hệ thống tập tin của Linux và Unix được tổ chức theo một hệ thống phân bậc tương tự cấu trúc của một cây phân cấp. Bậc cao nhất của hệ thống tập tin là thư mục gốc, được ký hiệu bằng vạch chéo “/” (root directory). Đối với các hệ điều hành Unix và Linux tất các thiết bị kết nối vào máy tính đều được nhận dạng như các tập tin, kể cả những linh kiện như ổ đĩa cứng, các phân vùng đĩa cứng và các ổ USB. Điều này có nghĩa là tất cả các tập tin và thư mục đều nằm dưới thư mục gốc, ngay cả những tập tin biểu tượng cho các ổ đĩa cứng.

Ví dụ, /home/User//linux/arp.doc chỉ toàn bộ đường dẫn đến tập tin arp.doc có trong thư mục User là thư mục phụ nằm trong thư mục home, ngay dưới thư mục gốc (/).

Nằm dưới thư mục gốc (/) có một loạt các thư mục quan trọng của hệ thống tập tin được công nhận ở tất cả các bản phân phối Linux khác nhau. Sau đây là danh sách các thư mục thông thường được nhìn thấy dưới thư mục gốc (/) :

  • /bin – chứa các ứng dụng quan trọng (binary applications),
  • /boot – các tập tin cấu hình cho quá trình khởi động hệ thống (boot configuration files),
  • /dev – chứa các tập tin là chứng nhận cho các thiết bị của hệ thống (device files)
  • /etc – chứa các tập tin cấu hình của hệ thống, các tập tin lệnh để khởi động các dịch vụ của hệ thống...
  • /home – thư mục này chứa các thư mục cá nhân của những người có quyền truy cập vào hệ thống (local users' home directories),
  • /lib – thư mục này lưu các thư viện chia sẻ của hệ thống (system libraries)
  • /lost+found – thư mục này được dùng để lưu các tập tin không có thư mục mẹ mà được tìm thấy dưới thư mục gốc (/) sau khi thực hiện lệnh kiểm tra hệ thống tập tin (fsck).
  • /media – thư mục này được dùng để tạo ra các tập tin gắn (loaded) tạm thời được hệ thống tạo ra khi một thiết bị lưu động (removable media) được cắm vào như đĩa CDs, máy ảnh kỹ thuật số...
  • /mnt – thư mục này được dùng để gắn các hệ thống tập tin tạm thời (mounted filesystems),
  • /opt – thư mục dùng dể chứa các phần mềm ứng dụng (optional applications) đã được cài đặt thêm,
  • /proc – đây là một thư mục đặc biệt linh động để lưu các thông tin về tình trạng của hệ thống, đặc biệt về các tiến trình (processes) đang hoạt động,
  • /root – đây là thư mục nhà của người quản trị hệ thống (root),
  • /sbin – thư mục này lưu lại các tập tin thực thi của hệ thống (system binaries)
  • /sys – thư mục này lưu các tập tin của hệ thống (system files),
  • /tmp – thư mục này lưu lại các tập tin được tạo ra tạm thời (temporary files),
  • /usr – thư mục này lưu và chứa những tập tin của các ứng dụng chính đã được cài đặt cho mọi người dùng (all users),
  • /var – thư mục này lưu lại tập tin ghi các số liệu biến đổi (variable files) như các tập tin dữ liệu và tập tin bản ghi (logs and databases).

Ổ đĩa và các Partition

  • /dev/hda Ổ đĩa cứng IDE đầu tiên (chính)
  • /dev/hdb Ổ đĩa cứng IDE thứ hai (thứ cấp)
  • /dev/sda Ổ đĩa cứng SCSI đầu tiên
  • /dev/sdb Ổ đĩa cứng SCSI thứ hai
  • /dev/fd0 Ổ đĩa mềm đầu tiên
  • /dev/fd1 Ổ đĩa mềm thứ hai

Ví dụ chúng ta chạy lệnh ls –l firstdoc.txt thấy kết quả như sau:

-rwxrw-r-- 1 User1 Testers 512 Oct 24 19:42 firstdoc.txt

Ý nghĩa của các field là:

  • File Access Permission: -rwxrw-r--
  • Số liên kết: 1
  • File Owner: User1
  • Group: Testers
  • File Size (bytes): 512
  • Lần hiệu chỉnh cuối: Oct 24
  • Last Modification Time: 19:42
  • File name: firstdoc.txt

Ngoài ra, qua lệnh ls –l chúng ta sẽ biết được firstdoc.txt là tập tin hay thư mục dựa theo:

  • Nếu kí tự đầu tiên là (-), thì đây là tập tin.
  • Nếu kí tự đầu tiên là d, thì đối tượng là thư mục.
  • Nếu kí tự đầu tiên là l, thì đầy là một liên kết (symbolic link) trỏ đến một file khác (gần giống với shortcut trên Windows OS).
  • Nếu kí tự đầu tiên là b, đối tượng là block device ví dụ như disk drive.
  • Nếu kí tự đầu tiên là c, đối tượng là character device như serial port.

Object Ownership

Trong ví dụ trên chúng ta thấy các tập tin đều có một group owner và file owner. Trong trường hợp muốn thay đổi ownership cho group hay user khác hãy đăng nhập với quyền root và thự hiện lệnh sau để đổi quyền ownership đối với tập tin payroll.doc cho người dùng vp_finance

chown vp_finance payroll.doc

Nếu muốn đổi quyền ownership cho group accounting hãy thực hiện lệnh

chown vp_finance.accounting payroll.doc

Trong trường hợp muốn chuyển quyền ownership toàn bộ thư mục và các tập tin bên trong thì thự hiện lệnh chown với tùy chọn –R:

chown -R vp_marketing.marketing /marketing/June
chown -R .marketing /marketing/June

Ngoài ra, nếu muốn chuyển quyền ownership mà không có quyền root thì có thể dùng lệnh chgrp nhưng lúc này bạn phải thuộc group có quyền ownership và group muốn chuyển quyền này.

Xem thông tin sử dụng đĩa cứng dùng lệnh df -h:

Mounting thiết bị, ổ đĩa

Để có thể sử dụng các ổ đĩa như CDROM, FDD.. chúng ta cần mount các ổ đĩa này bằng lệnh mount như:

# mount /dev/cdrom /mnt/cdrom

Kết quả lệnh sẽ là:

Mount: block device /dev/cdrom is write-protected. mounting
read-only

Tuy nhiên, đối với các phiên bản Linux mới thì việc sử dụng CDROM đa số được hệ thống mount tự động. Ngoài ra, chúng ta có thể mount cdrom hay các ổ usb, fdd đến các thư mục do chúng ta tạo ra như:

mkdir /cdrom
mount /dev/cdrom /cdrom

Và sau khi sử dụng xong chúng ta có thể sử dụng lệnh umount trước khi lấy đĩa ra (có nhiều trường hợp phải lấy CD ra bằng cách tắt nguồn)

Các quyền truy cập

Tất cả các tập tin của một hệ thống tâp tin Linux được gắn các quyền truy cập khác nhau theo từng người dùng của hệ thống, liên quan đến các phép đọc, viết và thực hiện. Người quản trị hệ thống (super user "root") có phép truy cập bất kỳ tập tin của hệ thống. Mỗi tập tin là sở hữu của một người nhất định và được gắn những hạn chế truy cập tùy theo người dùng và được gắn một nhóm người dùng.

Vậy mỗi tập tin được bảo đảm an toàn bởi 3 bộ quyền truy cập được gắn theo 3 nhóm người dùng như sau, theo thứ tự từ cao đến thấp:

  • user (người dùng) những quyền truy cập của nhóm này áp dụng cho người sở hữu tập tin,
  • group (nhóm người dùng) những quyền truy cập của nhóm này áp dụng cho nhóm đã được gắn với tập tin,
  • other (những người khác) những quyền truy cập của nhóm này áp dụng cho tất cả những người còn lại.

Mỗi bộ quyền truy cập sẽ xác định cụ thể các quyền truy cập thực tế đối với các tập tin và các thư mục như sau:

  • read (đọc)
    quyền xem nội dung tập tin hoặc mở tập tin
    quyền xem nội dung của tập tin thư mục
  • write (ghi, viết)
    quyền ghi và sửa lại nội dung tập tin hoặc xoá tập tin
    quyền sửa lại nội dung của tập tin thư mục
  • execute (thực thi)
    quyền này được gắn với các tập tin lệnh, nhóm người dùng đã nhận được quyền này có thể thực hiện các tập tin lệnh, quyền vào các thư mục.

Các quyền trên hệ thống Linux có thể được mô tả qua các số từ 0 đến 7 trong hệ thập phân. Ví dụ một user hay group có quyền R (read), W (write), E (execute) đối với 1 file/folder thì được kí hiệu là 1, ngược lại là 0 nếu không có quyền tương ứng (-). Và với phép chuyển từ số nhị phân sang thập phân chúng ta có bảng giá trị sau:


Vậy nếu một user/group có quyền đối với file/folder nào đó thì tương ứng với xác lập 111 ở hệ nhị phân hay 7 trong hệ thập phân, vậy quyền 777 là cho phép RWE đối với tất cả.


Người dùng và nhóm người dùng

Muốn bổ sung thêm người dùng, hoặc nhóm người dùng, cho hệ thống, bạn có thể dùng chương trình Users And Groups, trong thực đơn System -> Administration -> Users and Groups.

Để bổ sung một người dùng mới, ấn chuột vào Add user, điền các thông tin cần thiết rồi ấn chuột vào nút ghi OK. Để chỉnh lại các thuộc tính của từng người dùng, bạn có thể ấn chuột vào nút ghi Properties có trong cửa sổ chính của Users.

Để bổ sung một nhóm người dùng mới, chọn tab Groups tab và ấn chuột vào Add group. Xác định tên của nhóm mới và nếu muốn có thể thay đổi số ấn định cho nhóm (Group ID). Nếu bạn định dùng một số Group ID đã dùng rồi, hệ thống sẽ có thông báo.

Để bổ sung người dùng cho nhóm vừa mới được tạo ra, chỉ cần chọn một người dùng từ danh sách bên trái và ấn vào nút ghi Add. Muốn loại trừ một người dùng ra khỏi một nhóm cũng đơn giản bằng việc bổ sung: sau khi đã chọn tên người dùng trong cửa sổ bên phải, ấn chuột vào nút đã ghi.

Remove. Khi nào xong, ấn vào nút OK để kết thúc và thực sự tạo ra nhóm người dùng mới, cùng những người dùng thuộc nhóm đó.

Muốn sửa lại các thuộc tính của một nhóm người dùng, chọn tên của một nhóm trong cửa sổ Groups và ấn chuột vào nút đã ghi Properties.

Để xoá hoàn toàn một người dùng, hoặc một nhóm người dùng, từ hệ thống, chọn tên người dùng hoặc tên nhóm người dùng muốn xoá và ấn chuột vào nút đã ghi Delete.

Tương tự hệ thống Windows, khi cài đặt Linux (FC Core) sẽ tạo ra một tài khoản có quyền quản trị hệ thống và có thể dùng để tạo ra các tài khoản khác, đây là tài khoản cao cấp nhất có tên gọi là root. Để cấp quyền truy cập hệ thống chúng ta cần tạo ra các tài khoản người dùng, và mỗi tài khoản người dùng được gán một UID. Các tài khoản có chung thuộc tính sẽ được xếp vào các nhóm như trên hệ thống Windows và mỗi nhóm sẽ có các GID riêng.

Trên hệ thống Linux chúng ta có thể xem các User hiện có thông qua nội dung của tập tin /etc/passwd :

Trong tập tin passwd này chúng ta thấy có nhiều record với các filed khác nhau như:

  • User Account Name: login name của tài khoản người dùng.
  • Password: login password của tài khoản người dùng. Nếu chỉ thấy kí tự x trong ô này thì mật mã đã được mã hóa và bảo vệ trong tập tin shadow password.
  • User ID: số hiệu của user (UID)
  • Group ID: số hiệu Grioup mà người dùng này là thành viên (GID).
  • Full Name: tên đầy đủ của người dùng.
  • Home Directory: thư mục chủ của người dùng sau khi đăng nhập.
  • Shell: trình diễn dịch lệnh, ví dụ bash.

Khi một tài khoản mới được tạo nó sẽ được gán 1 UID, bắt đầu từ 500 trở đi và tăng dần khi các tài khoản mới được tạo ra.

Cũng như trên hệ điều hành Windows, sau khi cài đặt một số tài khoản và group mặc định sẽ được tạo như:


Share this

Related Posts

Previous
Next Post »