Nhƣ đã trình bày trong chƣơng 2, một trong những điểm mạnh của hệ thống Linux là khả năng phân quyền hạn truy nhập (Permission) cho mọi đối tƣợng bao gồm cả file, thƣ mục, hay các liên kết (link). Khả năng này đóng vai trò quan trọng trong việc cung cấp mức an ninh cao và tính ổn định cho hệ điều hành Linux.
Mỗi một đối tƣợng đƣợc gắn với 3 loại quyền là read (đọc), write (sửa chữa) và execute (thực thi). Mỗi quyền này đƣợc chỉ định cho 3 loại ngƣời dùng đó là : user (chủ sở hữu của đối tƣợng - mặc định ban đầu là ngƣời dùng tạo ra đối tƣợng đó), group (một nhóm các ngƣời dùng có các quyền hạn giống nhau đối với đối tƣợng - mặc định ban đầu là group mà user ở trên thuộc về), other (tất cả các ngƣời dùng không thuộc 2 nhóm trên).
Ý nghĩa của quyền hạn truy nhập trên từng đối tƣợng cụ thể nhƣ sau: Đối với thƣ mục:
r (Read): Chỉ cho phép sử dụng lệnh ls để xem tên các đối tƣợng có trong thƣ mục, nếu muốn xem thêm các thông tin khác nhƣ kích thƣớc, quyền hạn truy cập, chủ sở hữu, ngày khởi tạo...cần cấp thêm cho thƣ mục quyền excecute.
x (Write): Cho phép tạo và xóa các đối tƣợng trong thƣ mục. x (Execute): Chỉ cho phép chuyển vào thƣ mục sử dụng lệnh cd. Đối với file:
r: Cho phép xem nội dung của file.
w: Cho phép chỉnh sửa nội dung, xóa file.
e: Cho phép chạy file, quyền này thƣờng đƣợc gán cho các file nhị phân thực thi
Với ngƣời dùng root có thể thực hiện cả ba quyền này trên tất cả hệ thống tập tin và thƣ mục. Ngoài ra, root có thể thay đổi (cấp hoặc tƣớc) quyền hạn truy nhập đối tƣợng cho bất kỳ ngƣời dùng nào và có thể chuyển quyền sở hữu qua lại giữa các ngƣời dùng.
Để xem chi tiết thông tin của file hay thƣ mục sử dụng lệnh ls với tùy chọn -l sẽ liệt kê đầy đủ các thông tin về file và thƣ mục. Dƣới đây minh họa sử dụng lệnh ls để xem quyền hạn truy cập file và thƣ mục.
Hình 3.7: Xem thông tin chi tiết của file và thư mục
Mỗi dòng ở hình trên sẽ trình bày thông tin chi tiết về một file hay thƣ mục các thông tin này bao gồm:
ví dụ: -rw-rw-r-- 1 dangnam dangnam 1111 Apr 29 09:38 configweb.rule
Trong đó:
-rw-rw-r--: Cho biết kiểu đối tƣợng là file hay thƣ mục và quyền truy cập đối tƣợng. Trong đó: - cho biết đối tƣợng này là file (trong trƣờng hợp tham số là d cho biết đối tƣợng là thƣ mục). rw- cho biết ngƣời dùng user có 2 quyền đọc (r) và ghi (w) mà không có quyền thực thi. Tham số rw- tiếp theo tƣơng tự cho biết ngƣời dùng group cũng có 2 quyền là r và w. tham số r-- cuối cùng cho biết với ngƣời dùng other chỉ cho phép đọc (r) mà không cho phép thực thi và ghi. 1: Cho biết số liên kết.
dangnam: Cho biết ngƣời chủ file (user). dangnam: Cho biết nhóm chủ file (group). 1111: Cho biết kích thƣớc file.
Apr 29 09:38: Cho biết ngày giờ tạo file. configweb.rule: Cho biết tên file.
Để thay đổi quyền hạn truy cập các đối tƣợng trong Linux sử dụng lệnh chmod. Để sử dụng đƣợc lệnh chmod ngƣời dùng phải là user hoặc có quyền root. Dƣới đây
trình bày một số lệnh chmod minh họa việc cấp quyền truy cập khác nhau của ngƣời dùng với file configweb.rule:
chmod 777 configweb.rule: Cấp quyền truy cập đầy đủ cho mọi đối tƣợng ngƣời dùng.
chmod 775 configweb.rule: Cấp quyền truy cập đầy đủ cho ngƣời dùng user và group. Chỉ cho phép ngƣời dùng other đƣợc đọc và thực thi file này.
chmod 755 configweb.rule: Cấp quyền truy cập đầy đủ cho user, chỉ cho phép group và other có quyền đọc và thực thi file này.
chmod 700 configweb.rule: Cấp quyền truy cập đầy đủ cho user. Đồng thời chặn truy cập với mọi đối tƣợng ngƣời dùng khác.
chmod 500 configweb.rule: Không cho phép group và other truy cập file, đồng thời giới hạn quyền truy cập của user chỉ cho phép đọc và thực thi file này. chmod 660 configweb.rule: Cho phép user và group có quyền đọc, sửa, xóa và
ghi dữ liệu vào file, nhƣng không phân quyền cho những ngƣời dùng khác. Ngoài ra để thiết lập các quyền truy cập file khác nhau tùy theo yêu cầu tham khảo bảng 2.1 trong chƣơng 2 để sử dụng các tham số cho chính xác.
Hình dƣới đây minh họa việc thiết lập lại quyền truy cập file configweb.rule với lệnh chmod và những thay đổi của quyền truy cập file trƣớc và sau khi sử dụng lệnh chmod. Ban đầu file configweb.rule có quyền truy cập rw-rw-r-- sau đó sử dụng lệnh chmod 755 để thay đổi quyền truy cập với file này ta thu đƣợc rwxr-xr-x nhƣ dƣới đây.
Hình 3.8: Sử dụng lệnh chmod để thay đổi quyền truy cập file
Bện cạnh đó có thể sử dụng lệnh chmod bằng cách sử dụng ký tự đại diện. Các ký tự đại diện cho nhóm là:
- u: ngƣời dùng sở hữu file. - g: group của ngƣời dùng trên. - o: ngƣời dùng others khác. - a: tất cả ba ký hiệu ở trên
Các toán tử:
- +: thêm quyền. - -: bớt quyền. - =: gán quyền.
Ví dụ để thêm quyền sửa, xóa file configweb.rule cho ngƣời dùng group sử dụng lệnh chmod g+w configweb.rule. Kết quả thực hiện nhƣ hình minh họa dƣới đây:
Hình 3.9: Sử dụng chmod để thêm quyền người dùng
Cùng với việc sử dụng lệnh chmod để thay đổi quyền truy cập đối tƣợng file hay thƣ mục. Để tăng cƣờng an toàn cho các đối tƣợng này có thể sử dụng thêm các tiện ích khác nhƣ:
Thay đổi user cho đối tƣợng bằng cách sử dụng lệnh chown, lƣu ý để thực hiện lệnh ngày phải là root. Chẳng hạn để thay đổi user của file configweb.rule từ user hiện tại là dangnam thành user là root nhƣ sau: chown root configweb.rule Thực hiện lệnh và kết quả đƣợc minh họa nhƣ hình dƣới đây:
Hình 3.10: Sử dụng lệnh chown để thay đổi user cho file
Thay đổi group cho đối tƣợng sử dụng lệnh chgrp. Tuy nhiên để sử dụng đƣợc lệnh này phải thỏa mãn 2 điều kiện đó là phải sử dụng quền root và phải là chủ sở hữu thuộc group mà muốn thay đổi cho đối tƣợng. Ví dụ minh họa dƣới đây sử dụng lệnh chgrp để thay đổi group sử dụng configweb.rule tử dangnam sang root.