Nếu bạn là người dùng Linux hoặc quản trị viên hệ thống quản lý máy chủ Linux, bạn sẽ gặp lỗi "Bạn không có quyền tải tệp lên thư mục". Sau một số Googling, giải pháp thường dễ dàng như đặt quyền đối với tệp thành “775” hoặc “777”. Về mặt kỹ thuật, bạn sẽ được yêu cầu "chmod 777 tệp." Nhưng "777" có nghĩa là gì? Và tại sao nó phải là “7” mà không phải là “8” hoặc “9”?
Trong bài đăng này, chúng tôi sẽ hướng dẫn bạn cách hiểu rõ hơn một chút về quyền đối với tệp, bao gồm cả ý nghĩa của chmod 777.
Hiểu quyền đối với tệp
Hệ thống Unix (bao gồm cả Linux và macOS) có cơ chế kiểm soát tệp để xác định ai có thể truy cập một tệp hoặc thư mục cụ thể và họ có thể làm gì với nó.
Có hai phần cần xem xét:
Lớp học. Điều này xác định ai có thể truy cập tệp. Có ba chỉ định:Chủ sở hữu, Nhóm (tất cả đều có chung quyền) và Người khác.
- Chủ sở hữu thường là người tạo tệp hoặc thư mục. Trong Linux, bất kỳ tệp hoặc thư mục nào bạn tạo trong Thư mục chính thường do bạn sở hữu trừ khi bạn thay đổi quyền sở hữu cụ thể.
- Nhóm chứa một nhóm người dùng có cùng quyền và đặc quyền người dùng.
- Những người khác có nghĩa là công chúng.
Quyền. Những điều này xác định những gì người dùng có thể làm với một tệp. Bạn có thể Đọc, Viết hoặc Thực thi một tệp và bạn có thể đặt hầu hết mọi sự kết hợp của ba quyền này.
- Đọc. Bạn không thể sửa đổi nội dung của tệp theo bất kỳ cách nào. Khi áp dụng cho một Thư mục, bạn chỉ có thể xem các tệp trong thư mục đó; bạn không thể xóa hoặc sửa đổi tệp theo bất kỳ cách nào hoặc thêm nhiều tệp vào thư mục.
- Viết. Bạn có thể sửa đổi tệp. Nếu bạn có quyền "ghi" vào một thư mục thì bạn có thể xóa và thêm tệp vào thư mục đó.
- Thực thi. Execute chủ yếu được sử dụng khi bạn cần chạy tệp và thường được sử dụng nhất khi bạn cần chạy tập lệnh.
Bằng cách sử dụng Lớp kết hợp với Quyền, bạn có thể kiểm soát ai có quyền truy cập vào tệp và các hành động mà họ có thể thực hiện.
Chủ sở hữu tệp thường sẽ có tất cả ba quyền có sẵn cho họ (đọc, ghi và thực thi). Nếu bạn không thể tải tệp lên máy chủ, thường là do các quyền không khớp.
Giải thích Quyền đối với Tệp 777
Khi bạn đã hiểu cơ bản về Lớp và Quyền, bạn có thể bắt đầu hiểu các số như “777” và “775.”
Mọi tệp và thư mục đều chứa dữ liệu 8 bit kiểm soát các quyền. Ở dạng nhị phân cơ bản, 000 có nghĩa là không có quyền nào dưới bất kỳ hình thức nào được cấp.
Khi bạn đặt quyền “Đọc”, quyền đó sẽ thêm 4 bit vào dữ liệu, khiến nó trở thành “100” (ở định dạng nhị phân) hoặc “4” ở định dạng thập phân thông thường. Đặt quyền “Viết” sẽ thêm 2 bit vào dữ liệu, khiến dữ liệu trở thành “010” và “2” ở dạng thập phân. Cuối cùng, việc đặt quyền “Thực thi” sẽ thêm 1 bit vào dữ liệu, điều này sẽ dẫn đến “001” hoặc “1” ở dạng thập phân. Tóm lại:
- Read tương đương với “4.”
- Viết tương đương với “2.”
- Execute tương đương với “1.”
Tóm lại, thiết lập quyền là một phép toán cơ bản. Ví dụ:để đặt quyền “Đọc và Ghi”, chúng tôi kết hợp 4 và 2 để có 6. Tất nhiên, có các hoán vị khác:
- 0: Không được phép
- 1: Thực thi
- 2: Viết
- 3: Viết và thực thi
- 4: Đọc
- 5: Đọc và Thực thi
- 6: Đọc và Viết
- 7: Đọc, Viết và Thực thi
Một bộ quyền tệp hoàn chỉnh sẽ chỉ định chữ số đầu tiên cho Chủ sở hữu, chữ số thứ hai cho Nhóm và chữ số thứ ba cho Người khác. Dưới đây là một số quyền thường được sử dụng:
- 755 . Tập hợp các quyền này thường được sử dụng bởi các máy chủ web. Chủ sở hữu có tất cả các quyền để đọc, viết và thực thi. Mọi người khác có thể đọc và thực thi nhưng không thể thay đổi tệp.
- 644 . Chỉ có chủ sở hữu mới có thể đọc và viết. Mọi người khác chỉ có thể đọc. Không ai có thể thực thi tệp này.
- 655 . Chỉ chủ sở hữu mới có thể đọc và ghi và không thể thực thi tệp. Mọi người khác có thể đọc và thực thi và không thể sửa đổi tệp.
Đối với 777, điều này có nghĩa là mọi người dùng đều có thể Đọc, Viết và Thực thi. Bởi vì nó cấp đầy đủ quyền, nó nên được sử dụng cẩn thận. Tuy nhiên, trong một số trường hợp, bạn cần đặt 777 quyền trước khi có thể tải bất kỳ tệp nào lên máy chủ.
Đặt quyền đối với tệp trong dòng lệnh
Trong Linux, bạn có thể dễ dàng thay đổi quyền đối với tệp bằng cách nhấp chuột phải vào tệp hoặc thư mục và chọn “Thuộc tính”. Thao tác này sẽ mở tab Quyền nơi bạn có thể thực hiện các thay đổi.
Ngược lại, bạn có thể thay đổi cài đặt quyền trên macOS bằng cách nhấp chuột phải và chọn “Nhận thông tin”. Tại đây, bạn có thể mở rộng phần “Chia sẻ &Quyền” và thực hiện các thay đổi của mình.
Để thực hiện sửa đổi, hãy chọn các quyền có liên quan từ phần Đặc quyền và chọn điều gì đó phù hợp hơn.
Tuy nhiên, đây không phải là cách duy nhất bạn có thể thay đổi quyền đối với tệp. Tiếp theo, hãy giải thích điều này chi tiết hơn.
Thay đổi quyền đối với tệp bằng chmod 777
Nếu bạn đã quen thuộc hơn với Terminal và Command Line, bạn cũng có thể thay đổi quyền tại đây.
chmod
lệnh cho phép bạn “thay đổi chế độ” - một cách khác để mô tả quyền truy cập. Để thực hiện việc này, hãy mở Terminal và nhập như sau:
chmod 777 /path/to/file
Nói tóm lại, chmod 777
kết hợp hai khái niệm mà chúng tôi đã trình bày trong suốt bài viết này. Nó có nghĩa là làm cho tệp có thể đọc, ghi và thực thi được bởi tất cả mọi người có quyền truy cập. Do đó, nó là một công cụ phá vỡ hệ thống mạnh mẽ và tiềm năng - vì vậy cần hết sức cẩn thận với nó.
Tóm tắt
Quyền đối với tệp có thể hiển thị cho bạn một kỹ thuật "rào đón" nếu chúng không được đặt chính xác. Đây là do thiết kế, vì không thể xâm phạm hệ thống bị khóa. Mặc dù vậy, nếu bạn muốn truy cập một tệp trên hệ thống hoặc máy chủ của mình, học cách thay đổi các quyền nhất định là một kỹ năng vững chắc cần có.
Tóm lại, chmod 777 là lệnh bạn sẽ sử dụng trong Terminal để làm cho mọi người có thể truy cập tệp hoặc thư mục. Bạn nên sử dụng nó trong những trường hợp hiếm hoi và chuyển trở lại nhóm quyền hạn chế hơn sau khi hoàn tất.
Nếu bạn đang tự hỏi Terminal có thể làm gì khác, hãy xem bài đăng của chúng tôi về cách sao chép và dán từ dòng lệnh. Bạn có phải quản lý quyền đối với tệp không, và bài viết này có giúp được gì cho bạn không? Hãy cho chúng tôi biết trong phần bình luận bên dưới!