Tìm hiểu về File Permission

Share on:

Còn nhớ hồi học đại học, nhiều lúc setup server có mấy chỗ cứ chmod 777, chmod 755 loạn cả lên mà chả hiểu nó có ý nghĩa gì, hôm nay rảnh rỗi ngồi tìm hiểu xem tiện note lại cho anh em nào chưa biết nhé.

Hiểu về File Permissions

Hệ thống Unix (bao gồm Mac OS X và Linux) có cơ chế quản lý file giúp định nghĩa người nào có thể truy cập vào 1 file cụ thể và actions có thể thực thi trên file đó(ví dụ như: read, write, execute). Trong cơ chế quản lý file có 2 phần tên là ClassesPermissions. Classes định nghĩa người nào có thể truy cập vào file và Permission xác định loại actions mà người dùng đó có thể thao tác.

Có 3 loại Classes: Owner, Group, Others

  • Owner - thường là người tạo ra file/folders.
  • Group - bao gồm 1 group những người dùng có chung permission.
  • Others - có ý nghĩa là những đối tượng còn lại.

File Permissions

Đối với Permissions có 3 loại actions bạn có thể thực hiện đối với 1 file/folders đó là: read, write, execute

  • Read - Bạn chỉ có thể xem 1 file nhưng không thể sửa nội dung của file đó. Nếu là folders thì bạn chỉ có thể xem các files trong folders nhưng bạn không thể delete hoặc add file vào trong folders đó.
  • Write - Bạn có thể edit và sửa file. Với folders bạn có thể xóa và thêm files vào trong folders.
  • Execute - Được sử dụng khi bạn cần run 1 file(thường dùng để run file dạng script)

File Permissions

Vậy còn các số 777, 755 kia là cái gì?

Mỗi file và folder có 8-bit dữ liệu để control các permissions. Trong nhị phân, "000" sẽ tương đương với việc không có permissions nào được cấp. Khi bạn set read permission, 4-bit sẽ được thêm vào thành "100" trong nhị phân và "4" trong thập phân. Nếu bạn set write permission thì 2-bit sẽ được thêm vào thành "010" trong nhị phân và "2" trong thập phân. Cuối cùng, việc set "execute" permission sẽ thêm 1-bit vào dữ liệu, kết quả sẽ là "001" trong nhị phân hoặc "1" trong thập phân. Tóm lại:

  • Read tương đương với số 4
  • Write tương đương với số 2
  • Execute tương đương với số 1

Vậy thì, chmod 777 có nghãi là gì, bạn thấy đấy có 3 chữ số(777) tương đương với 3 permission được set lần lượt cho các Classes(Owner,Group,Others). 7 = 4(read) + 2(write) + 1(execute) có nghĩa là full control. Vậy thì nếu chmod 777 thì có nghĩa là tất cả mọi đối tượng đều có full quyền đối với file/folders mà bạn set.

  • 0 – no permission
  • 1 – execute
  • 2 – write
  • 3 – write and execute
  • 4 – read
  • 5 – read and execute
  • 6 – read and write
  • 7 – read, write, and execute

Bài gốc: https://www.maketecheasier.com/file-permissions-what-does-chmod-777-means/