Hệ thống tập tin của Unix

Tài liệu Hệ thống tập tin của Unix: Hệ thống tập tin của Unix 16 Tháng 3 Hệ thống tập tin của Linux và Unix được tổ chức theo một hệ thống phân bậc tương tự cấu trúc của một cây phân cấp. Bậc cao nhất của hệ thống tập tin là thư mục gốc, được ký hiệu bằng gạch chéo “ / ” (root directory). Đối với các hệ điều hành Unix và Linux tấ t các thiết bị kết nối vào máy tính đều được nhận dạng như các tập tin, k ể cả những linh kiện thiết bị như Ổ đĩa cứng, các phân vùng đĩa cứng và các ổ USB. Điều này có nghĩa là tấ t cả các tập tín và thư mục đều nằm dưới thư mục gốc, ngay cả nhũtig tập tin biểu tượng cho các ổ đĩa cúhg. Nằm dưới thư mục gốc (/) có một loạt các thư mực quan trọng của hệ thống tập tin được công nhận ở tấ t cả các bản phân phối Linux khác nhau. Sau đây là danh sách các thư mục thông thường được nhìn thấy dưới thư mục gốc (/) : • /bin - chứa các ứng dụng quan ữỌng (binary applications), • /boot - các tập tin cấu hình cho quá trình khởi động hệ thống (boot configuration files), • /dev - chứa các ...

pdf8 trang | Chia sẻ: Khủng Long | Lượt xem: 964 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Hệ thống tập tin của Unix, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Hệ thống tập tin của Unix 16 Tháng 3 Hệ thống tập tin của Linux và Unix được tổ chức theo một hệ thống phân bậc tương tự cấu trúc của một cây phân cấp. Bậc cao nhất của hệ thống tập tin là thư mục gốc, được ký hiệu bằng gạch chéo “ / ” (root directory). Đối với các hệ điều hành Unix và Linux tấ t các thiết bị kết nối vào máy tính đều được nhận dạng như các tập tin, k ể cả những linh kiện thiết bị như Ổ đĩa cứng, các phân vùng đĩa cứng và các ổ USB. Điều này có nghĩa là tấ t cả các tập tín và thư mục đều nằm dưới thư mục gốc, ngay cả nhũtig tập tin biểu tượng cho các ổ đĩa cúhg. Nằm dưới thư mục gốc (/) có một loạt các thư mực quan trọng của hệ thống tập tin được công nhận ở tấ t cả các bản phân phối Linux khác nhau. Sau đây là danh sách các thư mục thông thường được nhìn thấy dưới thư mục gốc (/) : • /bin - chứa các ứng dụng quan ữỌng (binary applications), • /boot - các tập tin cấu hình cho quá trình khởi động hệ thống (boot configuration files), • /dev - chứa các tập tin là chứng nhận cho các thiết bị của hệ thống (device files) • /etc - chứa các tập tín cấu hình của hệ thống, các tập tin lệnh đ ể khởi động các dịch vụ của hệ thống... • /home - thư mục này chứa các thư mục cá nhân của những người có quyền truy cập vào hệ thống (local users’ home directories), • /lib - thư mục này lưu các thư viện chia sẻ của hệ thống (system libraries) • /lost+found - thư mục này được dùng để lưu các tập tin không có thư mục m ẹ mà được tìm thấy dưới thư mục gốc (/) sau khi thực hiện lệnh kiểm ữa hệ thống tập tin (fsck). • /media - thư mục này được dùng đ ể tạo ra các tập tin gán (loaded) tạm thời được hệ thống tạo ra khi một thiết bị lưu động (removable media) được cắm vào như đĩa CDs, máy ảnh kỹ thuật số ... • /mnt - thư mục này được dùng để gắn các hệ thống tập tin tạm thời (mounted filesystems), • /opt - thư mục dùng dể chứa các phẩn mềm ứng dụng (optional applications) đã được cài đặt diêm, • /proc - đây là một thư mục đặc biệt linh động để lưu các thông tin về tình trạng của hệ thống, đặc biệt về các tiến trình (processes) đang hoạt động, • /root - đây là thư mực nhà của người quản trị hệ thống (root), • /sbin - thư mục này lưu lạ i các tập tín thực thi của hệ thống (system binaries) • /sys - thư mực này lưu các tập tin của h ệ thống (system files), • /tmp - thư mục này lưu lạ i các tập tin được tạo ra tạm thời (temporary files), • /usr - thư mục này lưu và chứa những tập tin của các ứng dựng chính đã được cài đặt cho mọi người dùng (all users), • /var - thư mực này lưu lạ i tập tin ghi các sô liệu biến đổi (variable files) như các tập tin dữ liệu và tập tin bản ghi (logs and databases). — 1— ROOT H . foin - c — /étc 1 1 Jtwnf 1 H-i ~ 1 — «DM lị ----- tìMtíkxmi — 1 totnn || ----- Stmlthềtm H -----1 UIKM> J -----1 H - 1 -----1 ruviw> 1--- Ivatln tn —Ị /imp Ị ---- / v a t n o c M . X ị T -----1 tvmrftoç 1 *•' ầ \iv*ocaltotn >\j9€'*xMJ%txn htÊdkOCflA/fcb Ổ đĩa và các Partition được xác định theo dạng tập tin có quy ước như sau: /dev/hda ổ đĩa cứng IDE đầu tiên (chính) /dev/hdb ổ đĩa cứng IDE thứ hai (thứ cấp) /dev/sda ổ đĩa cứng SCSI đầu Hên /dev/sdb ổ đĩa cứng SCSI thứ hai /dev/fdO 0 đĩa mềm đầu tiên /dev/fdl Ổ đĩa mềm thứ hai Trong đó quy tắc phân vùng có đặc điểm khá phức tạp điển hình lấy vd chúng ta có một ổ cứng IDE chính sẽ có tên tập tin là /dev/had tuy nhiên nếu chúng ta phân vùng ổ đĩa thì sẽ có quy ước theo mã sô như sau phần vùng chính sẽ có tên tập tín hdal và phân vùng logic sẽ co tên tập tin là hda5. Hay đơn giản hơn chỉ có thể có 4 phân vùng chính có sô thứ tự từ 1 à 4 (hdal, hda2, hda3, hda4) trong khi đó các phân vùng logic thì bắt đầu từ 5 (hda5,hda6...) Thông qua lệnh Is chúng ta sẽ có được thông tin của một tập tin trong hệ thống. Ví dụ chứng ta có thông tin một tập tin như sau: •rwxr-xr** I root root 191 Apr 14 14:55 named.conf 1 2 3 4 5 6 7 P/s: để xem thông tin một file dùng lệnh ls-1 1. Xác định thông tin các quyền truy cập tập tín • Dấu đầu tiên xác định loại tập tin Ký hiệu Ý nghĩa Tập tin thông thường b Tập tin đặc biệt Block c Tập tin đặc biệt ký tự d Thư mục 1 Tập tin liên kết (mềm/cúlng) • Chuỗi còn lạ i chia ra 3 đoạn tương ứng với mỗi đoạn là quyền xác định cho chủ sở hữu, nhóm sử dụng và người dùng khác đối với mỗi đối tượng như thê tổn tại 3 quyền căn bản là read - writer - execute ký hiệu tương Lftig là r-w-e còn ký hiệu chútig tỏ không có quyền. Ở trên đã để cập đến 3 loại quyền truy cập đối với file là read, write, execute; cụ thể hơn thì 1. read: quyền đọc file và do đó có thể sao chép lại file. Khi có quyền đọc file thì khnng ró nghĩa là ró qtiyền ghi (sửa đổi) flip nhuVig vì ró thể sao chép lại fi]p nên có thể sửa đổi bản sao chép. 2. write: quyền ghi file. Chú ý rằng có thể có quyền ghi mà không có quyền đọc một file. Ví dụ: có file text “document.txt”. Nêu có quyền đọc và quyền ghi file nậy thì người dùng có thể dùng trình soạn thảo văn bản vi, em acs,... đ ể hiển thị toàn bộ nội dung file và tìm những chỗ không vừa ý đ ể sửa chữa. Nêu chỉ có quyền ghi file mà không có quyền đọc thì người dùng không thể dùng ưình soạn thảo để sửa chữa file nhưng người dùng có thể dùng lệnh cat »docum ent.txt để ghi diêm vào cuối file hoặc cat >document.txt để ghi đè lên toàn bộ nội dung của file. 3. execute: quyền thực thi file. Có hai loại file có thể thực thi được là: (1) file chứa các lệnh máy mà CPU có thể thực thi luôn được, những file kiểu này gọi là executable file (2) file text chứa các lệnh cần thực hiện, nhũhg file kiểu này đượr gọi là script. Quyền thựr thi file độr lập với qnyền đpr và ghi flip. Ví dụ có file script “Procedure” với quyền thực thi mà không đọc, ghi; người dùng có thể thực thi các lệnh chứa trong file này nhlftig không thể mở file ra xem các lệnh đó là gì và cũng không thể thêm bớt, sửa chữa các lệnh trong file này. Việc xóa, đổi tên một file không được quyết định bởi quyền ghi với file đó mà bởi quyền ghi với thư mục chứa file đó. Ba quyền read, write, execute cũng được áp dụng với thư mục nhưng ý nghĩa của chúng thì khác hoàn toàn: 1. read: quyền đọc một thư mục là quyền liệt kê các file, thư mục con của một thư mục. 2. write: quyền ghi một thư mục là quyền tạo mới, xóa, đổi tên file và thư mục con của thư mục. Có thể xảy ra trường hợp: có quyền ghi một file tức là sửa chữa nội dung của file nhưng lại không có quyền đổi tên, xóa file nếu như không có quyền ghi với thư mục chứa file đó. 3. execute: quyền thực thi một thư mục là quyền “đi vào” thư mục, chằng hạn bằng lệnh cd. Có thể xảv ra trường hợp: có quyền thực thi nhulng lạ i không có quyền đọc một thư mực. Khi đó có thể “cd” một thư mục nhưng lại không thể ls nó ra. Khi thư mục khõng có quyến excute thì khõng thể truy cập nội dung các file trong thư mục đó. Ví dụ: giả sử user UI có file FileOfUl đặt trong /home/Ul muốn chia sẻ với các user khác nên đã đặt quyền r, w cho file. Tuy nhiên bản thân thư mục /home/Ul khi được tạo ra đã bị mặc định là không có quyền excute nên các user khác không thể đọc, ghi file /home/Ul/FileOfUl được. Chủ sở hữu và root có quyền thay đổi quyền truy cập đối với cả 3 loại đối tượng: chủ sở hữu (user), nhóm chủ sở hữu (group), những user khác không thuộc 2 loại trên (others). Lệnh thay đổi quyền truy cập: chmod (viết tắ t chmod = change mode) Có 2 cách biểu diễn : bằng kí tự hoặc bằng chữ sô - Cách 1: Biểu diên quyến bằng kí tự: quyến được biểu diễn bằng tổ hợp 3 loại kí tự sau Đòi tượng Thao tác Quyên truy cập II: chũ sờhùru (user) ạ: nhóm chủ sở hừu (group) o: nhừng user khóna CÌ1Ỉ12 nhóm ch« sở hilru (others) a: tảt cá các người sir dụng (a = uao) + +: thèm quyên mới bỡt quyên đà cỏ =: đặt chinh xác quyền + kliỏng cỏ quyèn r: read w: write x: excute s: G ID. L'ID t: sticky bit Ví dụ: chmod u+r,o+s myfile chmod uo=rx,g=- myfile chmod a=rwx myfile (ó chmod ugo=rwx myfile) chmod +x myfile (ó chmod u+x,g+x,o+x myfile) Chú ý: chmod u+r,o+x myíile và chmod u=r,o=x myíile là hai lệnh khác nhau - Cách 2: Biểu diễn quyền bằng chữ sô octal: dùng 3 chữ sô đ ể biểu diễn quyền của 3 loại đối tượng u, g, 0. Giá ữị mỗi chữ sô octal biểu diễn một quyền theo bảng sau: Chừ sò Quvcn 0 khòne cỏ quyên 1 read 2 write 4 execute Chừ só Quyeu 3 (=1+2) read, write 5 t 1-4) read, execute 6 (=2+4) write, execute 7(=1+2+4) read, write, execute Ví dụ: chmod 567 myfile (ó chmod u=rx,g=wx,o=rwx myfile) chmod 640 myfile (ó chmod u=wx,g=x,o=- myfile) Ngoài 3 chữ sô cho quyền r, w, X còn có thể có thêm chữ sô cho UID, GID, Sticky bit đứng đầu như trong lệnh chmod 1640 myfile SUID, SGID, sticky bit Ngoài 3 quyền cơ bản là là read, write, execute; còn có 3 quyền đặc biệt khác là setUID, setGID, sticky bit. Set UID và Set GID cho file SUID (set User ID) hoặc SGID (set Group ID) là việc cấu hình cho một file để khi bất kĩ một user hoặc một process nào thực thi file đó đều có quyền như thể user hoặc process đó là chủ sở hữu hoặc thuộc nhóm chủ sở hữu của file. Ví dụ: root sở hữu file “program” (executable file); root đặt quyền execute cho mọi user. Do đặc tính của program mà khi được thực thi nó cần người thực thi là root. Nêu một normal user chạy (thực thi) program thì sẽ bị báo lỗi không là root. Do vậy để một user bất kì có thể chạy được program thì root cẩn set user id cho program. ■ Set user id cho một file: chmod u+s myfile (hoặc dạng tắt chmod +s myfile) ■ Set group id cho một file: chmod g+s myfile Nêu dùng lệnh ls-1 cho một file đã được set UID hoặc GID thì sẽ thấy kí tự x chỉ quyền execute đa được thay thê bằng kí tự s. Ví dụ: « -rw s-x-x 1 root root 14024 Sep 9 1999 filel ■ -rwxr-sr-x 1 root mail 12072 Aug 16 1999 file2 Ở đây filel đã được set UID, file2 đã được set GID. Khi filel được thực thi thì user thực thi filel như thể là root. Khi file2 được thực thi thì user thực thi file2 như thể là thuộc nhóm mail. Việc set UID và set GID chỉ có ý nghĩa khi file được đặt quyền execute cho đối tượng 0 (tức là các user không cùng nhóm chủ sở hữu). Ớ ví dụ ưên nếu tập quyền của íilel và file2 không có chữ “x” ở cuối thì việc có chữ “s” là vô nghĩa. Set GID cho thư mục Ở trên đã nói về set UID, GID cho file, vớ i thư mục, không có thao tác set UID mà chỉ có thao tác set GID; Lệnh set GID cho thư mục cũng giống như set GID cho file: chmod g+s mydir nhưng ý nghĩa của nó thì khác hẳn. Khi một file/thư mục (con) được tạo mới trong một thư mục cha, theo mặc định file/thư mục đó có nhóm chủ sở hữu là primary group của user tạo ra file/thư mục đó. Nhuhg nếu thư mục cha được set GID thì mọi file/thư mục con của thư mục đó khi được tạo mới sẽ có nhóm chủ sở hữu chính là chủ sở hữu của thư mục. Việc set GID cho thư mục rấ t hữu ích như ở ví dụ sau. Giả sử hệ thống có user Lan, Thanh, Ba cùng làm việc ở phòng kê toán và ba user này được root đặt thuộc cùng một group là AccountDepart. Root tạo cho ba người một thư mục dừng chung là SharedDir để ba người chia sẻ công việc với nhau; ShareDir có nhóm chủ sở hữu là AccountDepart. Nêu root không set GID cho thư mục ShareDir, thì khi Lan tạo một file, theo m ặc định file đó có nhóm chủ sở hữu là primary group của Lan tức là group có tên cũng là Lan. Lúc đó user Thanh, Ba vì không thuộc về group Lan nên cũng chỉ có quyền như những người khác không thuộc phòng kê toán (không thuộc group AccountDepart). Đ ể giải quyết bất tiện này hoặc mỗi lẳn tạo file, Lan phải đặt lạ i nhóm chủ sở hữu của file đó thành AccountDepart (bằng lệnh chgrp); hoặc đơn giản hơn là root chỉ việc set GiD cho thư mục ShareDir. Khi đó mọi file, thư mục con mà Lan, Thanh, Ba tạo ra trong ShareDir đều có nhóm chủ sở hữu là AccountDepart. Mọi người trong phòng kê toán (thuộc group AccountDepart) sẽ có quyền với một file nào đó của phòng khác hẳn với những người không thuộc phòng kê toán. Một thư mục khi được set GID, ở vị trí xuất hiện chữ “x ” thứ hai trong tập quyền của nó sẽ có chữ “s” Ví dụ lệnh Is -1 cho một thư mục đã được set GID ■ drwxrwsr-x 2 root AccountDepart 1674 Apr 15 08:05 ShareDir Sticky bit Bit này chỉ hệ thống biết sau khi dừng chương trình cẩn lưu lại nó trong bộ nhớ, ưện khi cho những chương trình thường gọi vi sẽ tiết kiệm được thời gian nạp chương trình vào bộ nhớ mỗi lan chạy. Bit này còn quy định mọi người dùng có quyền write trên nó, nhưng chỉ có chủ sở hữu mới có quyén xóa nó. Đối với file, sticky bit thường chỉ được dùng với các thực thi thôi và thường thì chỉ có root hoặc các users có quyền hạn cao mới được bật hay tẳ t sticky bit cho file! Khi một file thực thi có sticky bit được bật, file này sẽ được nạp vào swap-space(không gian swap) của Unix đ ể có thể chạy nhanh. Bạn hãy để ý, các chương trình như vi, vim, pico, pine thường được bật sticky bit vì người dùng thường sử dụng các chương ưình này thường xuyên mà! Đối với thư mục, Khi nhiều người cùng có quyền write với một thư mục tức là có quyền tạo mới, xóa, đổi tên file, thư mục con của thư mục đó thì xảy ra vấn đề: một file được tạo trong thư mục bởi người này nhưng người khác lại có quyền xóa hoặc sửa chữa. Đ ể đảm bảo mọi file/thư mục con của một thư mục X chỉ bị xóa hoặc sửa đổi bởi chỉ người chủ sở hữu của file/thư mục con đó (và dĩ nhiên cả root) thì sticky bit cho thư mục X cắn được thiết lập. Đặt sticky bit cho một thư mục: chmod +t mydir Một thư mục khi đã được đặt sticky bit thì kí tự “x” cuối cùng trong tập quyền của thư mục đó sẽ được thay thê bằng kí tự “t”. Ví dụ: lệnh Is -1 cho một thư mục ■ drwxrwxrwt 13 root root 4096 Apr 15 08:05 tmp Thư mục /tmp trong Linux được mặc định đặt sticky bit. Kí hiệu SUID, SGID, Sticky bit bằng chữ số Ba quyến đặc biệt SUID, SGID, Sticky bit có thể được kí hiệu bằng chữ sô 4, 2 ,1 và được đặt trước 3 chữ sô kí hiệu cho 3 quyền cơ bản r, w, X. Ví dụ 1: chmod 1457 myDir ó chmod u=x,g=rx,o=rwx,+t myDir Chú ý: Không thể đảo +t lên trước chuỗi u=x,g=rx,o=rwx được, đây là qui ước. Chữ sô 1 ở đây là chỉ +t chứ không phải quyền +r. Ví dụ 2: chmod 6777 myFile ó chmod ugo=rwx,u+s,g+s myFile Tổng kết lạ i về quyền đặc biệt: Quyền Chữ sô kí Kí tự kí v ớ i file myfile v ớ i thư mục mydir hiệu hiệu SUID 4 u+s Một user bất kĩ thuộc nhóm 0 (others) thực thi myfile như thể là chủ sở hưu của file SGID 2 Sticky bit 1 g+s Mot user bat ki thuoc File/thu' muc con (cua thli muc nhom o (others) th lit thi mydir) co nhom chu sd hull la myfile nhlf the user do nhom chu sd huti cua mydir thuoc nhom chu sd huti cua file +t File/thu' muc con (cua thu" mlic mydir) dlTOc bao dam chi bi xoa/sLTa doi bdi chinh chu s d huu clla file/thlT mile con 2. So lien ket den tap tin

Các file đính kèm theo tài liệu này:

  • pdfbai_5_he_thong_thu_muc_va_tap_4046.pdf
Tài liệu liên quan