Chown 777 trong linux

Bạn đang cố gắng khắc phục sự cố về quyền với máy chủ web của mình và tìm thấy thông tin trên Internet, nói rằng bạn cần đệ quy chmod 777 thư mục web. Trước khi làm điều đó, hãy đảm bảo rằng bạn hiểu những gì sẽ làm chmod -R 777 và tại sao bạn không bao giờ nên đặt quyền thành 777.

Bài viết này giải thích mô hình quyền cơ bản của Linux và ý nghĩa của các con số tương ứng với các quyền.

Nội dung chính

Hiểu quyền đối với tệp Linux

Trong Linux, quyền truy cập vào tệp được hệ điều hành kiểm soát bằng cách sử dụng quyền, thuộc tính và quyền sở hữu tệp. Hiểu mô hình quyền của hệ thống tệp Linux cho phép bạn giới hạn quyền truy cập vào tệp và thư mục chỉ đối với những người dùng và quy trình được ủy quyền và làm cho hệ thống của bạn an toàn hơn.

Mỗi tệp được sở hữu bởi một người dùng và một nhóm cụ thể và được chỉ định quyền truy cập cấp phép cho ba lớp người dùng khác nhau:

  • Chủ sở hữu tệp.
  • Các thành viên trong nhóm.
  • Những người khác [mọi người khác].

Có ba loại quyền đối với tệp áp dụng cho mỗi lớp người dùng và cho phép bạn chỉ định người dùng nào được phép đọc tệp, ghi vào tệp hoặc thực thi tệp. Các thuộc tính quyền giống nhau áp dụng cho cả tệp và thư mục với một ý nghĩa khác:

  • Quyền đọc.
    • Tệp có thể đọc được. Ví dụ: khi quyền đọc được đặt, người dùng có thể mở tệp trong trình soạn thảo văn bản.
    • Nội dung của thư mục có thể được xem. Người dùng có thể liệt kê các tệp bên trong thư mục bằng ls lệnh.
  • Quyền ghi.
    • Tệp có thể được thay đổi hoặc sửa đổi.
    • Nội dung của thư mục có thể được thay đổi. Người dùng có thể tạo tệp mới , xóa tệp hiện có , di chuyển tệp , đổi tên tệp .. vv.
  • Quyền thực thi.
    • Tệp có thể được thực thi.
    • Thư mục có thể được nhập bằng cd lệnh.

Quyền đối với tệp có thể được xem bằng cách sử dụng ls lệnh. Đây là một ví dụ:

ls -l filename.txt

Output:

-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

Ký tự đầu tiên hiển thị loại tệp. Nó có thể là một tệp thông thường [ 

-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type
0 ], thư mục [ 
-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type
1 ], một liên kết tượng trưng [ 
-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type
2 ] hoặc bất kỳ loại tệp đặc biệt nào khác.

Chín ký tự tiếp theo đại diện cho quyền đối với tệp, ba ký tự ba mỗi ký tự. Bộ ba đầu tiên hiển thị quyền của chủ sở hữu, quyền thứ hai của một nhóm và bộ ba cuối cùng hiển thị quyền của mọi người khác.

Permission number 

Quyền đối với tệp có thể được biểu diễn ở định dạng số hoặc ký hiệu. Trong bài viết này, chúng ta sẽ tập trung vào định dạng số.

Số cho phép có thể bao gồm ba hoặc bốn chữ số, từ 0 đến 7.

Khi số có 3 chữ số được sử dụng, chữ số đầu tiên đại diện cho quyền của chủ sở hữu tệp, chữ số thứ hai cho nhóm của tệp và chữ số cuối cùng cho tất cả những người dùng khác.

Các quyền ghi, đọc và thực thi có giá trị số sau:

  • -rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
    |[-][-][-]-   [------] [---]
    | |  |  | |      |       |
    | |  |  | |      |       +-----------> 7. Group
    | |  |  | |      +-------------------> 6. Owner
    | |  |  | +--------------------------> 5. Alternate Access Method
    | |  |  +----------------------------> 4. Others Permissions
    | |  +-------------------------------> 3. Group Permissions
    | +----------------------------------> 2. Owner Permissions
    +------------------------------------> 1. File Type
    
    3 [đọc] = 4
  • -rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
    |[-][-][-]-   [------] [---]
    | |  |  | |      |       |
    | |  |  | |      |       +-----------> 7. Group
    | |  |  | |      +-------------------> 6. Owner
    | |  |  | +--------------------------> 5. Alternate Access Method
    | |  |  +----------------------------> 4. Others Permissions
    | |  +-------------------------------> 3. Group Permissions
    | +----------------------------------> 2. Owner Permissions
    +------------------------------------> 1. File Type
    
    4 [ghi] = 2
  • -rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
    |[-][-][-]-   [------] [---]
    | |  |  | |      |       |
    | |  |  | |      |       +-----------> 7. Group
    | |  |  | |      +-------------------> 6. Owner
    | |  |  | +--------------------------> 5. Alternate Access Method
    | |  |  +----------------------------> 4. Others Permissions
    | |  +-------------------------------> 3. Group Permissions
    | +----------------------------------> 2. Owner Permissions
    +------------------------------------> 1. File Type
    
    5 [thực hiện] = 1
  • không có quyền = 0

Số quyền của một lớp người dùng cụ thể là tổng giá trị của các quyền cho lớp đó.

Mỗi chữ số của số quyền có thể là tổng của 4, 2, 1 và 0:

  • 0 [0 + 0 + 0] – Không được phép.
  • 1 [0 + 0 + 1] – Chỉ thực thi quyền.
  • 2 [0 + 2 + 0] – Chỉ phép viết.
  • 3 [0 + 2 + 1] – Viết và thực thi quyền.
  • 4 [4 + 0 + 0] – Chỉ quyền đọc.
  • 5 [4 + 0 + 1] – Đọc và thực hiện quyền.
  • 6 [4 + 2 + 0] – Quyền đọc và ghi.
  • 7 [4 + 2 + 1] – Quyền đọc, viết và thực thi.

Ví dụ: nếu số quyền được đặt thành 750, điều đó có nghĩa là chủ sở hữu tệp có quyền đọc, ghi và thực thi, nhóm của tệp có quyền đọc và thực thi và những người dùng khác không có quyền:

  • Chủ sở hữu: rwx = 4 + 2 + 1 = 7
  • Nhóm: rx = 4 + 0 + 1 = 5
  • Khác: rx = 0 + 0 + 0 = 0

Khi sử dụng số có 4 chữ số, chữ số đầu tiên có ý nghĩa như sau:

  • setuid = 4
  • setgid = 2
  • dính = 1
  • không có thay đổi = 0

Ba chữ số tiếp theo có ý nghĩa tương tự như khi sử dụng số có 3 chữ số. Nếu chữ số đầu tiên là 0, nó có thể được bỏ qua và chế độ có thể được biểu diễn bằng 3 chữ số. Chế độ số 

-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type
6cũng giống như 
-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type
7.

Để xem các quyền của tệp trong ký hiệu số [bát phân], hãy sử dụng 

-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type
8 lệnh:

stat -c "%a" filename

Output:

644

Không bao giờ sử dụng chmod 777

Đặt 777 quyền cho một tệp hoặc thư mục có nghĩa là tất cả người dùng đều có thể đọc, ghi và thực thi được và có thể gây ra rủi ro bảo mật rất lớn.

Ví dụ: nếu bạn thay đổi đệ quy quyền của tất cả các tệp và thư mục con trong thư mục 

-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type
9 thành 
stat -c "%a" filename
0, bất kỳ người dùng nào trên hệ thống sẽ có thể tạo, xóa hoặc sửa đổi các tệp trong thư mục đó.

Nếu bạn gặp sự cố về quyền với máy chủ web của mình, thay vì đặt quyền một cách đệ quy 

stat -c "%a" filename
0, hãy thay đổi quyền sở hữu tệp cho người dùng đang chạy ứng dụng và đặt quyền của tệp 
stat -c "%a" filename
2 và quyền của thư mục thành 
-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type
7.

Quyền sở hữu tệp có thể được thay đổi bằng cách sử dụng 

stat -c "%a" filename
4 lệnh và quyền với 
stat -c "%a" filename
5 lệnh.

Giả sử bạn có một ứng dụng PHP trên máy chủ của mình đang chạy với tư cách người dùng “hocdevops”. Để đặt các quyền chính xác, bạn sẽ chạy:

chown -R hocdevops: /var/www
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;

Chỉ root, chủ sở hữu tệp hoặc người dùng có đặc quyền sudo mới có thể thay đổi quyền của tệp. Hãy hết sức cẩn thận khi sử dụng 

stat -c "%a" filename
5, đặc biệt là khi thay đổi đệ quy các quyền.

Phần kết luận

Nếu bạn đang quản lý một hệ thống Linux, điều quan trọng là phải biết các quyền của Linux hoạt động như thế nào.

Bạn không bao giờ nên đặt các tệp và quyền thư mục 777 [ rwxrwxrwx ]. 777 có nghĩa là bất kỳ ai cũng có thể làm bất cứ điều gì với các tệp đó.

Chủ Đề