Bài giảng Linux - Bài 5: Bảo mật hệ thống File
Mục tiêu: Hiểu các mức độ phân quyền trên Linux Dùng lệnh phân quyền cho tài khoản
Bạn đang xem trước 20 trang tài liệu Bài giảng Linux - Bài 5: Bảo mật hệ thống File, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
L I N U XBẢO MẬT HỆ THỐNG FILEBÀI 5Bài 5: Bảo mật hệ thống fileMục tiêu:Hiểu các mức độ phân quyền trên LinuxDùng lệnh phân quyền cho tài khoản1. Tổ chức hệ thống file trong Linux1.1. Files Một file là một cấu trúc cơ sở được dùng để chứa thông tin trên hệ thống Linux. File là một dãy liên tiếp các byte được chứa trên một thiết bị lưu trữ, thường là đĩa từ.Chú ý: - Linux phân biệt chữ hoa và chữ thường trong tên file. VD: Baocao và baocao là 2 tên file khác nhau. - Linux không coi dấu chấm (“.”) là ký tự ngăn cách giữa tên chính và phần mở rộng như DOS mà nó coi đó như là một ký tự để tạo nên tên file.1.2. Thư mục Thư mục bao gồm một nhóm file, thư mục giúp người dùng tổ chức các file. Mỗi thư mục có thể bao gồm các thư mục con.Ta có thể mô tả cấu trúc cơ sở cây thư mục của Linux như sau :/usretcdevhometmpbinzlibuser2user1toantinhocWebLinux1. Tổ chức hệ thống file trong Linux (tt)Tại sao anh xem nội dung file của tôi ???Bill GatesBill ClintonTôi thích vậy đó, ai biểu anh xóa folder của tôi2. Bảo mật hệ thống file2.1. Khái niệm Bảo mật hệ thống file là điều khiển việc truy nhập tới file và thư mục, nó xác định: + Ai là người truy nhập đến một file, thư mục nào đó. + Các thao tác nào mà người sử dụng được tiến hành đối với file và thư mục.Người chủ file, thư mục sẽ toàn quyền quyết định ai được phép truy nhập với quyền nào đến file và thư mục thông qua việc gán và huỷ quyền truy nhập (permission). Những đối tượng có thể truy nhập đến file, thư mục là: + Người chủ của file (user). + Nhóm chủ của file (group). + Những người khác (other).Ví dụ: $ls -l- rw-r--r-- 1 u1 g1 37 Feb 24 11:06 file1Trong đó: - : chỉ ra kiểu của file. rw-r--r-- : chỉ ra mode của file (quyền truy nhập). u1 : chỉ ra người chủ file. g1 : chỉ ra nhóm chủ file.2. Bảo mật hệ thống file (tt)2.2. Các quyền truy nhập Có 3 quyền truy nhập tới mỗi file và thư mục: - Read r + Đối với file : Đọc nội dung file. + Đối với thư mục : hiện danh sách các file và thư mục con trong thư mục. - Write w + Đối với file : Thay đổi nội dung file. + Đối với thư mục : Tạo, xoá, đổi tên file và thư mục con trong thư mục. - Execute x + Đối với file : Chạy các file chương trình. + Đối với thư mục : Có thể chuyển đến thư mục.Chú ý: Để chạy một file chương trình cần có các quyền read và execute. 2. Bảo mật hệ thống file (tt)2.3. Mode của file Mode của file là một dãy có tổng số 9 ký tự bao gồm 3 cặp, mỗi cặp 3 ký tự để xác định các quyền cho các đối tượng có thể truy nhập file là: người chủ file, nhóm chủ file và những người dùng khác trong hệ thống. Mode của file xuất hiện ngay sau ký tự chỉ kiểu file trong kết xuất của lệnh ls -lVí dụ: $ls -l- rw-r--r-- 1 u1 g1 37 Feb 24 11:06 file1Các quyền truy nhập của mỗi đối tượng như sau: + Người chủ file (u1): rw + Nhóm chủ file (g1): r + Những người khác: rChú ý: Các quyền không được phép trong mode của file ký hiệu là “-”.2. Bảo mật hệ thống file (tt)2.4. Thay đổi quyền truy xuất của file Ta có thể thay đổi quyền được gán với file hoặc thư mục bằng lệnh chmod. Ta có thể thực hiện lệnh này theo chế độ biểu tượng hay tuyệt đối, trong đó chế độ biểu tượng đơn giản hơn nhưng cho phép điều khiển kém hơn chế độ tuyệt đối. Lệnh chmod chỉ được thực hiện bởi người chủ file.Chế độ biểu tượngĐể thay đổi quyền của file hay thư mục ta dùng lệnh chmod với cú pháp chặt chẽ như sau: #chmod Trong đó, biểu thức gán quyền mô tả sự thay đổi quyền đối với file đã chỉ ra cho các đối tượng. Thành phần biểu thức bao gồm: a) Các toán hạng: là các ký hiệu của các đối tượng được gán quyền và các quyền tương ứng được gán. + Các ký hiệu của các đối tượng. u user g group o other a all + Các ký hiệu quyền r read w write x executeb) Các toán tử: là các phép gán quyền. + thêm - bớt = bằngTrong các biểu thức gán quyền, các thành phần nằm liền nhau không có khoảng cách và chỉ cho phép dùng một toán tử duy nhất. Ví dụ: $ ls -l vd.txt-rw-r--r-- 1 u1 g1 37 Feb 24 11:06 vd.txt $ chmod g=rw vd.txt $ ls -l vd.txt-rw-rw-r-- 1 u1 g1 37 Feb 24 11:06 vd.txt $ chmod go+x vd.txt $ ls -l vd.txtLệnh chmod nếu không chỉ ra đối tượng gán quyền, thì quyền sẽ được gán cho cả 3 đối tượng.Ví dụ: $ chmod +rwx vd.txt Để huỷ bỏ tất cả các quyền được gán cho file, thư mục ta dùng lệnh: $ chmod = Khi gán quyền bằng toán tử ‘’=’’ thì chỉ đối tượng được gán bị thay đổi quyền như được chỉ ra, bất kể trước đó họ được đặt quyền gì, các nhóm quyền của người khác cũng không bị ảnh hưởng.Chú ý:ký hiệu “-“ trong khối quyền của file chỉ rằng quyền đó không được phép đối với file hay thư mục.Lệnh #chmod -R sẽ thay đổi quyền cho cả cây thư mục. Còn theo mặc định, các thư mục con và file trong cây thư mục có quyền mặc định (022) tạo bởi lệnh umask.Chế độ tuyệt đốiChế độ tuyệt đối dùng dãy các số để chỉ các quyền được gán cho file hay thư mục. Khối quyền được biểu diễn bằng 3 số theo thứ tự là: số đầu tiên cho chủ file, số thứ 2 cho nhóm chủ file và số thứ 3 cho những người khác. Mỗi số là tổng 3 giá trị thể hiện quyền đọc, ghi và thực thi đối với file. Cả 3 số được chỉ ra trong cùng một dòng lệnh.Các số được gán cho quyền tương ứng như sau: read = 4 write = 2 execute = 1 không quyền = 0Các số trong mỗi nhóm quyền của từng đối tượng (chủ file, nhóm chủ file và người khác) được cộng với nhau, sau đó viết liên tiếp 3 số tạo được liền nhau và dùng để gán quyền.Ví dụ: để gán quyền cho file vd.txt với khối quyền làrw-r----x ta thực hiện theo các bước sau:số biểu diễn quyền gán cho mỗi đối tượng: Người chủ file rw- : 4+2+0=6 Nhóm chủ file r-- : 4+0+0=4 Những người khác --x : 0+0+1=1Dãy số biểu diễn khối quyền được gán là: 641.Dùng lệnh chmod để gán quyền cho file. #chmod 641 vd.txtKhi đó, quyền truy nhập đến file vd.txt là rw-r----xChú ý: - Để huỷ bỏ tất cả các quyền đã gán cho file trong chế độ tuyệt đối, ta dùng lệnh: #chmod 000 ấn định quyền mặc định cho file và thư mụcTheo mặc định, các file hay thư mục do người dùng tạo ra trong phiên làm việc luôn có khối quyền là rw-r--r-- tương ứng với dãy số quyền là 022.Ta cũng có thể ấn định lại quyền mặc định đối với file và thư mục được người dùng tạo ra bằng lệnh umask. Để đặt quyền mặc định ta dùng lệnh umask với cú pháp sau: $umask n1n2n3Trong đó: - n1n2n3 là một nhóm 3 chữ số, khi đó dãy số biểu diễn khối quyền sẽ là (7-n1)(7-n2)(7-n3). Các giá trị đặc biệt trong 3 số n1, n2, n3 của lệnh umask tương ứng với ấn định các quyền như sau: 0: đọc và ghi (và thực thi cho thư mục). 1: đọc và ghi (không thực thi cho thư mục). 2: đọc (và thực thi cho thư mục). 3: đọc (và không thực thi cho thư mục). 4: ghi (và thực thi cho thư mục). 5: ghi (và không thực thi cho thư mục). 6: thực thi. 7: không có quyền gì cả.Ví dụ: $umask 067Lệnh này sẽ ấn định quyền mặc định là 710, tức là: các file tạo ra sẽ có khối quyền là rw---x--- các thư mục có khối quyền là rwx--x---Chú ý:Lệnh umask không có tham số sẽ hiện giá trị số của chuỗi quyền mặc định hiện thời tạo bởi lệnh umask.Ví dụ: $umask 022Bài tập 1:1. Xem thông tin về quyền hạn trên tập tin baitho.txt2. Thêm quyền execute cho user, quyền write và execute cho group3. #chmod 644 baitho.txt ~> cho biết quyền hạn trên tập tin baitho.txt4. #chmod 764 baitho.txt ~> cho biết quyền hạn trên tập tin baitho.txt5. #chmod 777 baitho.txt ~> cho biết quyền hạn trên tập tin baitho.txtBài tập 2:1. Đăng nhập root2. Tạo mới tập tin /home/baocao.txt3. Tạo mới tài khoản nobita4. Đổi chủ sở hữu của tập tin /home/baocao.txt là nobita5. Phân quyền rwxr--r-- cho các đối tượng trên tập tin /home/baocao.txtBài tập 3:1. Đăng nhập root2. Tạo nhóm hanhchinh3. Tạo mới tài khoản u1, u24. Bổ sung 2 user trên vào nhóm hanhchinh5. Tạo mới thư mục /home/common6. Đổi nhóm sở hữu thư mục /home/common là nhóm hanhchinh7. Phân quyền rwx cho nhóm hanhchinh trên thư mục /home/commonĐể phân quyền chi tiết cho từng user hoặc nhóm ta dùng lệnh setfacl $setfacl –m u:doremon:r vanban.txtĐể xem sự phân quyền chi tiết của tập tin, thư mục ta dùng lệnh getfacl $getfacl vanban.txtBài tập 11. Tạo cây thư mục sau: / |_____Doremon | | | |_____Secret | | | |_____Music | |_____Data 2. Tạo 2 tài khoản nobita và doremon, mật khẩu: 1234563. Phân quyền cho Nobita và Doremon có thể tạo, xoá, sửa nội dung của Data4. Doremon được toàn quyền trên thư mục Doremon5. Không cho quyền Nobita truy cập vào thư mục Secret6. Cho phép Nobita được truy cập vào thư mục Music nhưng chỉ được quyền đọcNobitaDoremonBài tập 21. Tạo cây thư mục sau: / |_____Data | |_____DuLieuChung | |_____Ketoan | |_____Nhansu2. Tạo group KeToan. Tạo các user: u1, u2, u3, mật khẩu 123456. Đưa các user này vào group KeToan3. Tạo group NhanSu. Tạo các user: u4, u5, u6, mật khẩu 654321. Đưa các user này vào group NhanSu4. Trên thư mục Data : group KeToan và NhanSu có quyền read.5. Trên thư mục DuLieuChung : group KeToan và NhanSu có toàn quyền.6. Trên thư mục KeToan : group KeToan có toàn quyền, NhanSu thì không.7. Trên thư mục NhanSu : group NhanSu có toàn quyền, KeToan thì không.Bài tập 31. Tạo cây thư mục sau: / |_____Doremon | | | |_____Ketoan | | |_____dulieuketoan.txt | | | |_____Music | |_____Nobita | |_____Kinhdoanh | | | |_____English | |_____voanews.txt | |_____Dulieu |_____baihat.txt2. Phân quyền cho Nobita và Doremon sao cho phù hợp nhấtNobitaDoremon