CC: hai số chỉ thế kỉ,
3.2 Quyền truy nhập th− mục và tậptin 1 Quyền truy nhập
3.2.1 Quyền truy nhập
Mỗi tập tin và th− mục trong Linux đều có một chủ sở hữu và một nhóm sở hữu, cũng nh− một tập hợp các quyền truy nhập. Cho phép thay đổi các quyền truy nhập và quyền sở hữu tập tin và th− mục nhằm cung cấp truy nhập nhiều hơn hay ít hơn.
Thông tin về một tập tin phổ biến có dạng sau (đ−ợc hiện ra theo lệnh hiện danh sách tập tin ls -l):
Trong đó, dãy 10 ký tự đầu tiên mô tả kiểu tập tin và quyền truy nhập đối với tập tin đó.
Theo mặc định, ng−ời dùng tạo một tập tin chính là ng−ời chủ (sở hữu) của tập tin đó và là ng−ời có quyền sở hữu nó. Ng−ời chủ của tập tin có đặc quyền thay đổi quyền truy nhập hay quyền sở hữu đối với tập tin đó. Tất nhiên, một khi đã chuyển quyền sở hữu của mình cho ng−ời dùng khác thì ng−ời chủ cũ không đ−ợc phép chuyển quyền sở hữu và quyền truy nhập đ−ợc nữa.
Tập hợp một chuỗi có 10 ký tự đã giới thiệu trên đây đ−ợc chia ra làm 4 phần: kiểu tập tin, các quyền truy nhập đến tập tin của chủ sở hữu, của nhóm sở hữu và ng−ời dùng khác.
Có một số kiểu tập tin trong Linux. Ký tự đầu tiên trong tập hợp 10 ký tự mô tả kiểu tập tin và quyền truy nhập sẽ cho biết tập tin thuộc kiểu nào (chữ cái đó đ−ợc gọi là chữ cái biểu diễn). Bảng d−ới đây sẽ liệt kê các kiểu tập tin trong Linux:
Chữ cái biểu diễn Kiểu tập tin
d b c l p s - Th− mục (directory)
Tập tin kiểu khối (block-type special file) Tập tin kiểu ký tự (character-type special file) Liên kết t−ợng tr−ng (symbolic link)
Tập tin đ−ờng ống (pipe) Socket
Tập tin bình th−ờng (regular file) Tập hợp quyền truy nhập Số liên kết đến tập tin (th− mục) Ng−ời
chủ tập tin chủ tập tinNhóm th−ớc tập tin Kích (byte) Ngày giờ tạo tập tin Tên tập tin
Chín ký tự tiếp theo trong chuỗi quyền truy nhập đ−ợc chia ra làm 3 nhóm t−ơng ứng với quyền truy nhập của ng−ời sử hữu, nhóm sở hữu và ng−ời dùng khác.
Ví dụ, 10 ký tự đầu tiên trong dòng ví dụ ngay tr−ớc đây sẽ đ−ợc phân tích thành:
Để hiểu đ−ợc chính xác quyền truy nhập có ý nghĩa nh− thế nào đối với hệ thống máy tính, phải nhớ rằng Linux xem mọi thứ đều là tập tin. Nếu cài đặt một ứng dụng, nó cũng sẽ đ−ợc xem nh− mọi ch−ơng trình khác, trừ một điều: hệ thống nhận biết rằng một ứng dụng là một ch−ơng trình khả thi, tức là nó có thể chạy đ−ợc. Một bức th− gửi cho mẹ là một dạng tập tin văn bản bình th−ờng, nh−ng nếu thông báo cho hệ thống biết đó là một ch−ơng trình khả thi, hệ thống sẽ cố để chạy ch−ơng trình (và tất nhiên là lỗi).
Có ba loại quyền truy nhập chính đối với th− mục/tập tin, đó là: đọc (read - r), ghi (write - w) và thực hiện (execute - x). Quyền đọc cho phép ng−ời dùng có thể xem nội dung của tập tin với rất nhiều ch−ơng trình khác nhau, nh−ng họ sẽ không thể thay đổi, sửa chữa hoặc xóa bất kỳ thông tin nào trong đó. Tuy nhiên, họ có thể sao chép tập tin đó thành tập tin của họ và sửa chữa tập tin bản sao.
Quyền ghi là quyền truy nhập tiếp theo. Ng−ời sử dụng với quyền ghi khi truy nhập vào tập tin có thể thêm thông tin vào tập tin. Nếu có quyền ghi và quyền đọc đối với một tập tin, có thể soạn thảo lại tập tin đó - quyền đọc cho phép xem nội dung, và quyền ghi cho phép thay đổi nội dung tập tin. Nếu chỉ có quyền ghi, sẽ thêm đ−ợc thông tin vào tập tin, nh−ng lại không thể xem đ−ợc nội dung của tập tin.
Loại quyền truy nhập thứ ba là quyền thực hiện, quyền này cho phép ng−ời dùng có thể chạy đ−ợc tập tin, nếu đó là một ch−ơng trình khả thi. Quyền thực hiện độc lập với các quyền truy nhập khác, vì thế hoàn toàn có thể có một ch−ơng trình với quyền đọc và quyền thực hiện, nh−ng không có quyền ghi. Cũng có tr−ờng hợp một ch−ơng trình chỉ có quyền thực hiện, có nghĩa là ng−ời dùng có thể chạy ứng dụng, nh−ng họ không thể xem đ−ợc cách nó làm việc hay sao chép nó.
Bảng d−ới đây giới thiệu cách ký hiệu của các quyền truy nhập:
Quyền truy nhập ý nghĩa
--- r-- r-x rw- rwx
Không cho phép quyền truy nhập nào Chỉ đ−ợc quyền đọc
Quyền đọc và thực hiện (cho ch−ơng trình và shell script) Quyền đọc và ghi
Cho phép tất cả các quyền truy nhập (cho ch−ơng trình) Tuy nhiên, đối với th− mục thì chỉ có ba loại ký hiệu của các quyền truy nhập là:
---, r-x và rwx, vì nội dung của th− mục là danh sách của các tập tin và các th− mục Quyền của ng−ời dùng khác
Kiểu tập
tin: th− mục của ng−ờiQuyền hủ
Quyền của nhóm
hủ
có bên trong th− mục đó. Quyền đọc một th− mục là đ−ợc xem nội dung của th− mục đó và quyền thực hiện đối với một th− mục là đ−ợc xem nội dung của các tập tin và th− mục con có trong th− mục.
Nh− vậy, với ví dụ đang đ−ợc xem xét, chúng ta nhận đ−ợc đây là một th− mục và quyền truy nhập nó đ−ợc giải thích nh− sau:
Giải thích:
Sự hạn chế tr−ờng hợp về quyền truy nhập th− mục đ−ợc giải thích theo các lập luận nh− sau:
Hãy hình dung, giả sử chỉ có quyền đọc trên th− mục, khi đó sẽ xem đ−ợc có những tập tin hay th− mục nào trong th− mục nh−ng lại không thể xem cụ thể nội dung của một tập tin hay th− mục có trên th− mục đó.
Hoặc giả sử có quyền thực hiện - quyền này sẽ cho phép thao tác với các tập tin có trên th− mục - nh−ng lại không có quyền đọc đối với một th− mục, vậy thì làm thế nào để biết đ−ợc trong th− mục có những tập tin nào.