Filesystem
Filesystem là một cấu trúc được tổ chức với tập hợp các tập tin hoặc thư mục. Nó quyết định quyền kiểm soát đối với dữ liệu, tức là cách dữ liệu được lưu trữ và lấy lại.
Filesystem Linux là một cấu trúc giống như cây gồm nhiều thư mục. Những thư mục này chỉ là các tập tin chứa danh sách các tập tin khác. Linux không phân biệt giữa các tập tin và thư mục. Tất cả các tập tin trong Filesystem Linux đều được gọi là các thư mục, và những tập tin này được phân loại như sau:
- Tập tin thông thường chứa dữ liệu, văn bản, hình ảnh, các chỉ thị chương trình.
- Tập tin đặc biệt cung cấp truy cập vào các thiết bị phần cứng.
- Thư mục chứa cả các tập tin thông thường và đặc biệt.
Để xem tất cả các tập tin và thư mục trong Linux, sử dụng lệnh ls -l.
Trong hình ảnh trên, có bảy cột được định nghĩa như sau:
Cột đầu tiên biểu thị loại file và quyền truy cập vào file. Mỗi hàng file bắt đầu bằng loại file và sau đó chỉ định các quyền truy cập được liên kết với các file. Các loại file sau đây được định nghĩa với ký tự đặc biệt riêng của chúng:
- Regular file – file thông thường (-)
- Directory – Thư mục (d)
- Link – Liên kết (l)
- Special File – file đặc biệt (c)
- Socket (s)
- Named pipe (p)
- Block device – Thiết bị khối (b)
Cột thứ hai biểu thị số khối bộ nhớ.
Cột thứ ba biểu thị chủ sở hữu của file, người có quyền quản lý.
Cột thứ tư biểu thị nhóm của chủ sở hữu.
Cột thứ năm biểu thị kích thước của file.
Cột thứ sáu biểu thị ngày và giờ khi file được tạo hoặc sửa đổi lần cuối.
Cột cuối cùng biểu thị tên của file hoặc thư mục.
File Permissions
Mặc dù hệ điều hành dựa trên Linux có những tính năng bảo mật tốt nhất, nhưng vẫn cần có quyền truy cập tập tin để bảo vệ hệ thống file của nó, vì có các vấn đề liên quan đến quyền truy cập tập tin xảy ra khi người dùng gán quyền truy cập không đúng cho các tập tin và thư mục. Những vấn đề này có thể gây ra sự phá hoại xâm nhập vào hệ thống file. Do đó, Linux bảo vệ hệ thống file của mình bằng hai thuộc tính ủy quyền như sau:
– Permissions: Có ba loại quyền được liên kết với các file như sau:
- Read – Quyền Đọc (r) cho phép bạn xem nội dung của file.
- Write – Quyền Ghi (w) cho phép bạn chỉnh sửa nội dung của file.
- Execute – Quyền Thực Thi (x) cho phép bạn chạy file lệnh hoặc kịch bản.
– Ownership: Có ba loại người dùng Linux như sau:
Chủ sở hữu (Owner) là siêu người dùng (superuser) tạo ra file. Anh ta có thể truy cập tất cả các quyền liên quan đến một file bao gồm đọc, sửa đổi và chạy file.
Nhóm (Group) là một tập hợp người dùng hoặc nhiều người dùng. Siêu người dùng tạo ra nó. Mỗi thành viên trong một nhóm có cùng quyền truy cập được liên kết với một file.
Người dùng khác, tức là người dùng bên thứ ba, có thể là bất kỳ ai khác không thuộc về Siêu người dùng / Thành viên nhóm. Họ sử dụng các quyền liên quan đến bất kỳ file hoặc thư mục nào được tạo hoặc sở hữu bởi Siêu người dùng / Thành viên nhóm.
Hãy hiểu khái niệm này thông qua ví dụ đã cho.
Các quyền truy cập của một file được hiển thị trong cột đầu tiên của hàng được tô đậm trong hình ảnh. Cột đầu tiên có 10 ô.
- Cột đầu tiên (-) đại diện cho một file có tên là aa.sh.
- Ba cột tiếp theo (rw-) chỉ định các quyền truy cập được sử dụng bởi chủ sở hữu được gán. Các quyền truy cập này bao gồm đọc và ghi. Ở đây, quyền thực thi bị từ chối.
- Ba cột tiếp theo (rw-) chỉ định các quyền truy cập được sử dụng bởi các thành viên của nhóm sở hữu thư mục. Các quyền truy cập này bao gồm đọc và ghi, nhưng không bao gồm quyền thực thi.
- Ba cột tiếp theo (r–) chỉ định các quyền truy cập được sử dụng bởi các người dùng bên thứ ba. Các quyền truy cập này bao gồm chỉ quyền đọc. Ở đây, cả quyền đọc và ghi đều bị từ chối.
Changing Permissions
Bạn có thể thay đổi quyền truy cập của các class (user/group/others) bằng cách sử dụng lệnh chmod. Dạng cơ bản để xóa hoặc thêm quyền truy cập cho bất kỳ class nào là:
chmod [class][operator][permission] file_name
chmod [ugoa][+or-][rwx] file_name
Bạn có thể thay đổi quyền truy cập cho từng lớp (người dùng/nhóm/người khác) bằng cách sử dụng lệnh chmod. Định dạng cơ bản để xóa hoặc thêm quyền truy cập cho bất kỳ lớp nào như sau:
- lớp được đại diện bởi các chỉ báo – u, g, o và a, trong đó u là người dùng, g là nhóm, o là người khác và a là tất cả các lớp.
- toán tử (+ hoặc -) được sử dụng để thêm hoặc loại bỏ quyền.
- quyền được đại diện bởi các chỉ báo r, w, x để cho phép truy cập cho đọc, sửa đổi hoặc chạy tập lệnh tương ứng.
Chẳng hạn, để thay đổi quyền truy cập của file aa.sh bên dưới, bạn có thể sử dụng lệnh chmod.
Thêm các quyền bị từ chối
Xóa quyền ghi và thực thi
Như vậy bằng cách sử dụng lệnh chmod, bạn có thể thêm hoặc xóa quyền truy cập của từng lớp bằng cách sử dụng các chỉ số – u, g, o và a, tương ứng với từng lớp người dùng (người dùng, chủ sở hữu nhóm, thành viên nhóm khác và tất cả các lớp). Bạn có thể sử dụng các toán tử + hoặc – để thêm hoặc xóa quyền truy cập và sử dụng các chỉ số r, w và x để cho phép truy cập cho việc đọc, sửa đổi hoặc chạy mã kịch bản. Bạn có thể sử dụng lệnh chmod để thay đổi quyền truy cập của các file trong hệ thống của mình nếu cần thiết.