Tại sao không nên sử dụng quyền 777 trên Linux

Tác giả: 22/07/2022

Khi mới bắt đầu tiếp xúc với Linux thì chắc chắn thuật ngữ phân quyền, chmod, chown… đã không còn xa lạ với các bạn nữa. Tuy nhiên bạn đã phân quyền đúng chưa, và liệu rằng các quyền mình điều chỉnh mang ý nghĩa gì và không nên lạm dụng quyền gì.

Làm việc trực tiếp trên linux thì đôi lúc bạn sẽ bắt gặp thông báo ví dụ như :

You don’t have permission to hoặc là permission denied

Thông thường cách nhanh nhất là các bạn tìm kiếm trên mạng và sử dụng chmod -R 777 file/folder. Với lệnh này sẽ giải quyết được vấn đề bạn đang gặp phải.Tuy nhiên nó có thực sự hiệu quả và an toàn hay không thì bạn có thể tìm hiểu về các quyền trong Linux.

I.Cách phân quyền trong Linux

Trước khi đi vào phân quyền trong Linux bạn cần nằm 2 thành phần quan trọng sau

1- Permission Groups

  • Owner: Chủ sở hữu file
  • Group: Một nhóm nào đó và được gán quyền nào cho file thì những user nằm trong nhóm sẽ có quyền đó.
  • Other: Những user còn lại (không thuộc 2 loại trên)

 

2- Permission Type

Có 3 loại quyền cơ bản trong linux là đọc(read), ghi(write) và thực thi(execute) file như bảng bên dưới

Đến đây thì chắc các bạn đã hiểu được ý nghĩa của con số 7 trong bộ quyền 777 rồi đúng không.Nó chính là tổng của 3 con số trên (Read+Write+Execute = 4+2+1=7), tức là toàn bộ quyền đọc, ghi và thực thi).

Nhưng tại sao lại là 777 thì các bạn hãy tiếp tục đến với cách kiểm tra quyền hiện tại của file nhé. Nếu các bạn đã quen với câu lệnh ls để liệt kê danh sách file/folder thì chỉ cần thêm tùy chọn -lah để xem được chi tiết phân quyền như sau:

Trong ảnh này bạn sẽ thấy một số cột và các dãy số cũng như ký hiệu và mình sẽ giải thích từng cột để bạn nằm rõ.

Cột 1: Ở cột này mỗi file/thư mục sẽ có các quyền với ký hiệu khác nhau. Ví dụ file đầu tiên là -rw-r–r– thì trong bộ này sẽ bao gồm

  • dấu , dấu này là để xác định loại file, tức là nếu có dấu thì đó là file còn chữ d thì đó là thư mục, chữ c là thiết bị và chữ l (chữ L) là liên kết
  • rw-: bộ 3 đầu tiên là quyền hạn của Owner
  • r–: Bộ ba tiếp theo là quyền hạn của Group
  • r–: Bộ 3 còn lại là quyền hạn của Other

Cột 2: (Số 1) số này để chỉ số lượng liên kết với file, số 1 ở đây có ý nghĩa là nó chỉ có 1 liên kết cứng trỏ tới chính nó

Cột 3: Chủ sở hữu của file ở đây là root hoặc webapps

Cột 4: Nhóm (Group) sở hữu file ở ảnh này là root hoặc nginx

Những cột tiếp theo hiển thị thông tin về dung lượng, thời gian, tên file và folder.

Khi đã xem đến phần này thì chắc hẵn bạn đã hiểu về phân quyền trong linux rồi phải không nào. Vậy thì quay ngược lại cấu hỏi và tiêu đề bài viết về quyền 777. Mỗi số sẽ tương ứng với quyền hạn lần lượt là Owner/Group/Other

chmod -R 777

Với quyền này thì đã cho một user bất kỳ có toàn bộ quyền hạn đối với file/thư mục của bạn. Đây là một hành động hết sức nguy hiểm có thể bị hacker khai thác chiếm quyền quản lý hệ thống máy chủ vì vậy các bạn tuyệt đối không nên sử dụng bừa. Và chỉ nên sử dụng khi cần thiết và bạn làm chủ hoàn toàn được nó.

Qua bài viết này hy vọng phần nào sẽ giúp các bạn hiểu hơn về những con số trong phân quyền và cách phân quyền trong Linux.

Trả lời