Phân quyền tập tin và thư mục trên Linux (CHMOD) [NEW]

Đây là một khái niệm cực kỳ quan trọng mà tôi sẽ cần giải thích cho bạn về thế giới Linux, bởi vì máy chủ của bạn có an toàn hay không một phần phụ thuộc vào kỹ năng phân quyền.

Trong Linux, để cấp quyền lại cho các tệp và thư mục, chúng ta sẽ sử dụng lệnh chmod. Trong bài viết này, tôi sẽ trình bày cách sử dụng lệnh chmod cũng như cấu trúc quyền trong Linux.

Phân quyền tập tin và thư mục trên Linux (CHMOD) [NEW]

I. Phân quyền là gì?

Trong Linux, nói đến phân quyền, chúng ta sẽ nghĩ ngay đến 3 quyền cơ bản của một nhóm / người dùng nhất định trên một tệp / thư mục nào đó, bao gồm:

  • r (read) – quyền đọc tệp / thư mục
  • w (ghi) – quyền ghi / chỉnh sửa nội dung tệp / thư mục
  • x (thực thi) – quyền thực thi (truy cập) thư mục. Đối với thư mục, bạn cần có quyền thực thi để sử dụng lệnh cd để truy cập nó

Ok, bây giờ bạn hãy thử tự làm các công việc sau (ở các bài viết trước mình đã hướng dẫn các bạn rồi):

  • Đăng nhập vào SSH với người dùng là root
  • Tạo người dùng mới với tên bất kỳ, sau đó đặt mật khẩu cho tên đó
  • Đăng xuất khỏi SSH, đăng nhập lại với người dùng bạn vừa tạo
  • Ngay tại thư mục của người dùng, nhanh chóng tạo một tệp trống với bất kỳ tên nào bằng lệnh touch tên-file
  • Ngay tại thư mục của người dùng, tạo một thư mục với tên bất kỳ
  • Gõ lệnh ls -l để xem các tệp mới được tạo với các chi tiết của nó

Kết quả sẽ được trả về như sau:

[bash]

chạm vào testfile
mkdir testfolder
ls -l
tổng 4
-rw-rw-r– 1 van van 0 21 tháng 9 19:47 testfile
van van drwxrwxr-x 2 van 4096 21/09 19:47 testfolder

[/bash]

Các bạn chú ý giúp mình 2 dòng này nhé:

-rw-rw-r– 1 van van 0 Sep 21 19:47 testfile
drwxrwxr-x 2 van van 4096 Sep 21 19:47 testfolder

Tôi muốn giải thích bằng mô hình dưới đây như sau:

-rw-rw-r– 1 van van 0 Sep 21 19:47 testfile
drwxrwxr-x 2 van van 4096 Sep 21 19:47 testfolder
__________________________________________^– Ngày tháng tạo ra file và tên file
^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | — Dung lượng của file/folder
| | | | | | ——– Tên group sở hữu
| | | | | ————— Tên user sở hữu
| | | | ———————- Số này khó giải thích, bỏ qua vì không quan trọng
| | | |
| ––—————————– Các chỉ số phân quyền
————————————- Loại file (chữ d nghĩa là thư mục)

Điểm quan trọng ở đây là chúng ta sẽ phân tích các chỉ số phân quyền trong mớ hỗn độn trên.

Đầu tiên là đoạn rw-rw-r--trong đoạn này, bạn có thể thấy nó có một số dấu gạch ngang (-). điều đó có nghĩa là không có đủ quyền được bật cho nó, mỗi quyền sẽ được mô tả bằng -. Đặc biệt:

  • rw-: Đối tượng đầu tiên là quyền của người dùng sở hữu nó.
  • rw-: Đối tượng thứ hai là quyền dành cho những người dùng của nhóm sở hữu nó.
  • r--: Đối tượng thứ ba là quyền dành cho MỌI người dùng không thuộc quyền sở hữu và không thuộc nhóm quyền sở hữu.

Vì vậy, đoạn rw-rw-r-- bần tiện “Người sử dụng van nước được phép đọc và chỉnh sửa tệp, những người dùng thuộc nhóm van nước có thể đọc và chỉnh sửa tệp, phần còn lại chỉ có thể đọc tệp“.

Nhưng đó chỉ là một trong những biểu diễn quyền đối với tệp, biểu tượng còn lại là số. Đặc biệt:

  • Sự cho phép r đại diện bởi số 4.
  • Sự cho phép w đại diện bởi số 2.
  • Sự cho phép x đại diện bởi số 1.

Nếu một đối tượng có tất cả 3 quyền này, thì bạn chỉ cần lấy cả 3 để cộng thành 4 + 2 + 1 = 7, vì vậy số 7 có nghĩa là nó được phép đọc, chỉnh sửa và thực thi tệp. Ví dụ, đoạn văn rw-rw-r-- Sau đó, tôi có một phép tính như thế này:


r w – r w – r – –
4 2 0 4 2 0 4 0 0
| | | | | | | | |
6 / 6 / 4 /

Vì vậy, nó kết luận rằng, đoạn rw-rw-r-- sẽ được biểu diễn bằng số dưới dạng 664. Đây là quyền tệp mặc định.

Tương tự, đoạn rwxrwxr-x nghĩa là ở dòng thứ 2 sẽ được biểu thị bằng số là 775. Đây là quyền mặc định cho thư mục.

Bây giờ bạn có thể thử bằng cách tạo một người dùng mới khác, sau đó đăng nhập bằng người dùng này vào thư mục của người dùng mà bạn đã tạo ở trên để xem có báo lỗi khi truy cập hay không. Tiếp theo, hãy thực hành cách đặt người dùng mới vào nhóm người dùng chủ sở hữu và sau đó thử lại. Đây là lúc để xem lại các bài học trước.

II. Thay đổi quyền đối với tệp / thư mục

Bạn có chắc mình hiểu hệ thống phi tập trung trên Linux? Nếu vậy, bạn sẽ cần hiểu cách thay đổi quyền cho tệp và thư mục.

Để phân phối lại quyền cho cả tệp / thư mục trên Linux, bạn sẽ sử dụng lệnh có tên chmod. Cấu trúc sử dụng lệnh này là:

[bash]chmod [tùy chọn] [biểu diễn phân quyền] [tên file hoặc thư mục][/bash]

Trong đó, mục [tùy chọn] là tùy chọn, bao gồm các tùy chọn sau:

  • -v: hiển thị báo cáo sau khi chạy lệnh. Nếu bạn chmod nhiều tệp / thư mục cùng lúc, mỗi khi thay đổi quyền của tệp / thư mục, nó sẽ hiển thị một báo cáo.
  • -c: tương tự như trên, nhưng chỉ khi hoàn thành tất cả.
  • -f: Nói tóm lại là kiểu “cứ mặc kệ”, có lỗi sẽ không thông báo.
  • -R: nếu bạn CHMOD một thư mục, thì hãy bao gồm -R có nghĩa là luôn áp dụng cho các tệp / thư mục nằm bên trong nó.
  • --help: hiển thị thông báo trợ giúp.

bên trong [biểu diễn phân quyền]bạn có thể đại diện trong 3 loại:

  • kiểu ký tự: giống như trên (rw-rw-x–).
  • ugo type: loại này sẽ phân quyền cho từng đối tượng phân quyền.
  • kiểu số: giống như trên (644).

Ví dụ:

  • chmod 775 testfile
  • chmod 400 testfolder
  • chmod u+s testfolder (Cho phép các thành viên không phải chủ sở hữu và không thuộc sở hữu nhóm thực thi thư mục)

Một vài ví dụ khác về kiểu ugo:

  • o + rws: cho phép chủ sở hữu toàn quyền
  • g + rw: cho phép nhóm chủ sở hữu có quyền đọc và ghi
  • u + w: cho phép những người dùng còn lại có quyền đọc
  • a + rws: cho phép tất cả người dùng có đầy đủ quyền (777)

III. Thay đổi chủ sở hữu tệp / thư mục

Theo mặc định, các tệp và thư mục sẽ thuộc sở hữu của người dùng / nhóm đã tạo ra nó. Ví dụ: nếu tôi sử dụng người dùng thach1 để tạo thư mục, những người dùng khác ngoại trừ người dùng root sẽ không thể tạo tệp hoặc thay đổi nội dung của tệp trong thư mục này, vì nó thuộc sở hữu của thach1.

Do đó, để thay đổi chủ sở hữu của một thư mục cho một người dùng / nhóm nhất định, bạn sẽ sử dụng lệnh chown như sau:

[bash]chown -CHEAP [tên user]:[tên group] [file/folder][/bash]

Ví dụ:

[bash]chown -R thach2: thach2 / home / thach1[/bash]

Phần kết

Bài viết này có vẻ hơi dài dòng nhưng không có nghĩa là quá khó hiểu, ngược lại nó rất dễ hiểu nếu bạn đọc kỹ và làm theo. Trong bài tiếp theo, tôi sẽ hướng dẫn bạn từng bước cài đặt một Máy chủ web LAMP (Linux + Apache + MySQL + PHP) để có thể chạy một trang web WordPress cơ bản trên VPS.

Đánh giá nội dung này