Unix / Linux - Quyền truy cập tệp / Chế độ truy cập

Xin chào các bạn đang theo đuổi lập trình! Hôm nay, chúng ta sẽ cùng khám phá thế giới kỳ diệu của quyền truy cập tệp trong Unix và Linux. Đừng lo lắng nếu bạn mới bắt đầu; đến cuối bài hướng dẫn này, bạn sẽ trở thành một chuyên gia về quyền truy cập tệp! Hãy cùng bắt đầu hành trình thú vị này.

Unix / Linux - File Permission

Các chỉ báo quyền truy cập

Hãy tưởng tượng bạn là người bảo vệ của một két bảo vệ. Bạn cần quyết định ai có thể mở nó, ai có thể đặt thứ gì vào trong đó, và ai có thể lấy thứ gì ra. Đó chính là essence của quyền truy cập tệp trong Unix và Linux!

Khi bạn liệt kê các tệp sử dụng lệnh ls -l, bạn sẽ thấy điều gì đó như thế này:

-rwxr-xr-x 1 john users 2048 Jan 15 2023 myfile.txt

Hãy phân tích các ký tự bí ẩn ở đầu:

  • Ký tự đầu tiên chỉ định loại tệp (- cho tệp thông thường, d cho thư mục)
  • 9 ký tự tiếp theo đại diện cho quyền truy cập của người dùng, nhóm và người khác

Dưới đây là bảng tiện ích để nhớ ý nghĩa của từng ký tự:

Ký tự Ý nghĩa
r Quyền đọc
w Quyền ghi
x Quyền thực thi
- Không có quyền

Chế độ truy cập tệp

Bây giờ, hãy nói về những quyền truy cập này thực sự cho phép bạn làm gì với các tệp:

  1. Đọc (r): Xem nội dung của tệp
  2. Ghi (w): Chỉnh sửa hoặc xóa tệp
  3. Thực thi (x): Chạy tệp như một chương trình hoặc kịch bản

Dưới đây là cách dễ nhớ: Nghĩ r như là "đọc công thức", w như là "viết công thức", và x như là "thực thi công thức" (nấu món ăn)!

Chế độ truy cập thư mục

Thư mục có quyền truy cập tương tự, nhưng chúng hoạt động một chút khác nhau:

  1. Đọc (r): Liệt kê nội dung của thư mục
  2. Ghi (w): Thêm hoặc xóa tệp trong thư mục
  3. Thực thi (x): Truy cập thư mục và nội dung của nó

Hãy tưởng tượng một thư mục như một căn phòng. "r" cho phép bạn nhòm vào trong, "w" cho phép bạn thêm hoặc bớt nội thất, và "x" cho phép bạn vào trong phòng.

Thay đổi quyền truy cập

Bây giờ chúng ta đã hiểu quyền truy cập, hãy học cách thay đổi chúng! Chúng ta sử dụng lệnh chmod để làm điều này. Có hai cách sử dụng chmod: chế độ biểu tượng và chế độ tuyệt đối.

Chế độ biểu tượng

Điều này giống như đưa ra hướng dẫn để thêm hoặc bớt quyền truy cập. Dưới đây là cú pháp cơ bản:

chmod [who][+,-,=][permissions] filename
  • who có thể là u (người dùng), g (nhóm), o (người khác), hoặc a (tất cả)
  • + thêm quyền, - bớt quyền, = đặt chính xác
  • permissions là r, w, hoặc x

Ví dụ:

chmod u+x myfile.txt

Điều này thêm quyền thực thi cho người dùng.

Sử dụng chmod với Quyền Tuyệt đối

Chế độ tuyệt đối sử dụng số để đặt quyền. Mỗi quyền có một giá trị:

  • r = 4
  • w = 2
  • x = 1

Chúng ta cộng chúng lại cho từng danh mục (người dùng, nhóm, người khác). Dưới đây là bảng để giúp bạn hiểu:

Số Quyền
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx

Ví dụ:

chmod 755 myfile.txt

Điều này đặt rwx cho người dùng, và rx cho nhóm và người khác.

Thay đổi chủ sở hữu và nhóm

Đôi khi, bạn cần thay đổi ai là chủ sở hữu của tệp hoặc nhóm nào tệp thuộc về. Hãy xem cách thực hiện điều đó.

Thay đổi chủ sở hữu

Để thay đổi chủ sở hữu của tệp, chúng ta sử dụng lệnh chown:

chown newowner filename

Ví dụ:

chown alice myfile.txt

Điều này thay đổi chủ sở hữu của myfile.txt thành alice.

Thay đổi nhóm sở hữu

Để thay đổi nhóm, chúng ta sử dụng lệnh chgrp:

chgrp newgroup filename

Ví dụ:

chgrp developers myfile.txt

Điều này thay đổi nhóm của myfile.txt thành developers.

Quyền SUID và SGID

Bây giờ, hãy nói về một số quyền đặc biệt: SUID (Set User ID) và SGID (Set Group ID). Đây giống như siêu năng lực cho các tệp!

  • SUID: Khi đặt trên một tệp thực thi, nó chạy với quyền của chủ sở hữu.
  • SGID: Khi đặt trên một tệp thực thi, nó chạy với quyền của nhóm.

Để đặt chúng, chúng ta sử dụng chmod với một số đặc biệt:

chmod 4755 myfile    # Đặt SUID
chmod 2755 myfile    # Đặt SGID

Số 4 ở đầu đặt SUID, và 2 đặt SGID.

Và thế là xong! Bây giờ bạn đã nắm vững thế giới của quyền truy cập tệp trong Unix/Linux. Nhớ rằng, với quyền lực lớn đi kèm với trách nhiệm lớn. Sử dụng quyền này một cách khôn ngoan để giữ cho các tệp của bạn an toàn và bảo mật.

Thực hành là chìa khóa, vì vậy đừng ngần ngại thử nghiệm (trong một môi trường an toàn, tất nhiên). Trước khi bạn biết, bạn sẽ quản lý quyền truy cập tệp như một chuyên gia!

Credits: Image by storyset