MỤC LỤC
MỤC LỤC.................................................................................................................................1
I.Giới thiệu về Linux............................................................................................................3
1.Lịch sử ra đời và phát triển của Linux..........................................................................3
PHẦN II: QUẢN LÍ HỆ THỐNG FILE TRÊN LINUX.......................................................................5
I.Cơ bản về file và thư mục.................................................................................................5
1.Khái niệm: ...................................................................................................................5
2. Tên file trên Linux:......................................................................................................6
II. Các hệ thống file sử dụng trong Linux............................................................................7
III. Gắn kết hệ thống file....................................................................................................10
IV. Một số lệnh quản lý.....................................................................................................15
2.Chuyển thư mục........................................................................................................15
- Cú pháp: cd dir_name...............................................................................................15
3. Copy files...................................................................................................................15
4. Move và rename file................................................................................................16
5. Xóa files và thư mục..................................................................................................16
V. Quyền hạn đối với File..................................................................................................16
2.Thay đổi quyền
Chỉ có user có quyền root (/), hoặc user là chủ sở hữu của file mới có thể thay đổi quyền
của file đó. Lệnh chuyển quyền: chmod mode file...................................................................18
3. Quyền mặc định........................................................................................................20
LỜI MỞ ĐẦU
Hệ điều hành là một chương trình quản lý phần cứu máy tính. Nó cung cấp
nền tảng cho các chương trình ứng dụng và đóng vai trò trung gian giao tiếp giữa
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
người dùng máy tính và phần cứng của máy tính đó. Nó giúp máy tính dễ sử dụng
hơn, thuận lợi và hiệu quả hơn.
Tài nguyên máy tính mà điển hình là hệ cơ sở dữ liệu (Database System) có
ảnh hưởng rất nhiều tới tính hiệu quả của việc sử dụng máy tính. Mà trong đó hệ
thống các file là hệ thống chủ yếu. Bởi vậy quản lí hệ thống file như thế nào có ảnh
hưởng lớn và trực tiếp tới hiệu quả sử dụng máy tính. Việc quản lí hệ thống file
được xây dựng và tổ chức tùy thuộc vào từng hệ điều hành.
- Sau đây nhóm chúng em xin được trình bày về vấn đề: Quản lý hệ thống file
trong hệ điều hành Linux
-
Các tài liệu tham khảo:
• Running Linux của nhà xuất bản O’REILLY.
• Giáo trình nguyên lý hệ điều hành của nhà xuất bản Hà Nội.
• The Linux Device File – System tác giả Rechard Gooch.
• Giáo trình nguyên lý hệ điều hành – Trường Đại học Công Nghiệp Hà Nội,
Khoa Công Nghệ Thông Tin.
• Và một số trang web trực tiếp khác.
Mặc dù rất cố gắng nhưng do hạn chế về thời gian, trình độ, nguồn số liệu
nên chắc chắn bài viết sẽ không tránh khỏi sai sót khách quan. Chúng em mong thầy
và các bạn tận tình chỉ bảo để chúng em rút ra kinh nghiệm.
Chúng em xin chân thành cám ơn!
2
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
PHẦN I: TỔNG QUAN VỀ LINUX
I.
Giới thiệu về Linux
1. Lịch sử ra đời và phát triển của Linux
Hình 1: Chim cánh cụt Tux – Biểu trưng và vật may mắn của Linux.
Linux do Linus Torvalds - một sinh viên tại trường Đại Học ở Helsinki (Phần
Lan) phát triển dựa trên hệ điều hành Minix, một hệ điều hành có cấu trúc tương tự
Unix với các chức năng tối thiểu được dùng trong dạy học.
Linux đạt được những thành công một cách nhanh chóng là nhờ vào các đặc
tính nổi bật so với các hệ thống khác: Chi phí phần cứng thấp, tốc độ cao (so với
Unix) và khả năng bảo mật tốt, độ tin cậy cao (so sánh với Windows) cũng như là
các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà cung cấp. Một đặc tính
nổi trội của nó là được phát triển bởi một mô hình phát triển phần mềm mã nguồn
mở hiệu quả. Đó là một thách thức đối với sự thống trị của Microsofft Windows
trong một số lĩnh vực.
Linux là một hệ điều hành mã nguồn mở (Open Source) và miễn phí dưới bản
quyền của tổ chức GNU (Gnu’s Not Unix). Mặc dù các hệ thống này thường được
gọi là Linux nhưng tên chính xác cho các hệ thống này là Hệ điều hành GNU/Linux.
Khởi đầu, Linux được phát triển cho dòng vi xử lý 386 Intel với khả năng đa
tác vụ. Hiện tại tất cả các phiên bản của Linux đều có chung phần kernel (nhân) và
3
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
các tính năng đặc trưng cùng với các ứng dụng mang tính chuyên dụng và phổ cập
như:
-
Open Office: Gồm các công cụ văn phòng cơ bản tương tự như Microsoft
Office nhưng hoàn toàn miễn phí.
-
Mozilla Firefox: Trình duyệt web tương tự như phiên bản trên windows.
VLC: Công cụ chơi nhạc, video nổi tiếng với rất nhiều người dùng Hệ điều
hành windows.
-
Pidgin: Trình nhắn tin, chat hỗ trợ nhiều giao thức như Yahoo Messenger,
Google talk, MSN, ...
-
Scim-Unikey: Trình gõ tiếng Việt rất phổ biến trên Ubuntu.
Tuy nhiên, hiện tại số lượng phần cứng được hỗ trợ bởi Linux vẫn còn rất
khiêm tốn so với Windows vì các trình điều khiển thiết bị tương thích với Windows
nhiều hơn là Linux. Nhưng trong tương lai số lượng phần cứng được hỗ trợ cho
Linux sẽ tăng lên.
2. Các bản phân phối của Linux
Hiện tại Linux có nhiều bản phân phối khác nhau, một phần bởi vì tính chất
“mã nguồn mở” của Linux.
Bảng1: Một số bản Linux phổ biến (Cập nhật tháng 10/2012)
Tên bản phân phối
Phiên bản mới nhất
Trang web
Ubuntu
12.04
www.ubuntu.com
Fedora
17
www.fedoraproject.org
SUSE Linux Enterprise Desktop
12.1
/>
Red Hat Enterprise Linux
6.0
www.redhat.com/rhel
Knoppix
7.0.2
www.knoppix.com
Debian GNU/Linux
6.0.5
www.debian.org
Mint
13
www.linuxmint.com
4
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
PHẦN II: QUẢN LÍ HỆ THỐNG FILE TRÊN LINUX
I.
Cơ bản về file và thư mục
1. Khái niệm:
Hệ thống file là một cơ sở dữ liệu các file và thư mục, được đính kèm vào thư
mục gốc hoặc một thư mục bất kỳ của một hệ thống file khác đã được đính kèm
trước đó. Việc đính kèm một hệ thống file được gọi là mount. Mỗi phân vùng là một
hệ thống file. Đĩa CD hay USB cũng là một hệ thống file. Linux quản lý tất cả các
phân vùng và hệ thống file khác dưới dạng cây thư mục, có gốc là thư mục /. Một hệ
thống file mà chưa được mount thì không thể truy cập được các file và thư mục
trong đó. Không giống như trên Windows, trên Linux không có khái niệm ổ đĩa
logic là C hay D. Tất cả điều được "treo" lên một cái cây (đặt sau thư mục gốc), gọi
là "cây thư mục" . Mọi thư mục khác điều là con, cháu của gốc (/).
Một số thư mục tiêu biểu như:
- /: Thư mục root, lưu ý phân biệt với thư mục home của user root (/root)!
- /bin, /sbin: Chứa các lệnh hệ thống.
- /boot: Chứa kernel cùng các files hổ trợ cho kernel (System.map, initrd,...).
- /dev: Chứa các device files.
- /etc: Chức các file thông tin, cấu hình hệ thống.
- /home: Thư mục nhà mặc định cho các users.
- /mnt hoặc /media: Chứa các mount-point cho những thiết bị removeable.
- /lib: Chứa thư viện.
- /usr: Tương tự như thư mục Program Files tại Windows.
- /proc: Thư mục ảo, chứa thông tin đang sử dụng của Kernel.
- /var: Chứa log files và spool files.
5
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
Với hệ thống Linux, hệ thống file nằm ở các thiết bị như ổ đĩa cứng, ổ đĩa mềm,
hay đĩa CD (được định dạng để lưu trữ tệp). Hệ thống file có thể được tìm thấy trên
ổ đĩa cứng, ổ đĩa mềm, đĩa CD và các phương tiện lưu trữ cho phép truy cập ngẫu
nhiên.
/(root)
(root)
date
sort
home
dev
sbin
cdrom
console
dream
desktop
bt.doc
.....
cuncon
picture
cun.jpg
Tệp thiết bị
Tệp tin
Thư mục
Hình 2: Sơ đồ mô tả cây thư mục
2. Tên file trên Linux:
- Tên file trong Linux có thể dài tới 256 ký tự, bao gồm các chữ cái, chữ số, dấu
gạch nối, gạch chân, dấu chấm. Nếu trong tên file có dấu chấm “.” Thì xâu con của
tên file từ dấu chấm cuối cùng được gọi là phần mở rộng của tên fie.
- Linux chỉ lấy 32 hay 64 ký tự đầu tiên trong tên file (tuỳ theo phiên bản Linux)
vì thế nếu 2 file chỉ khác nhau ở ký tự cuối cùng, thì trong Linux đó là 2 file có thể
trùng tên.
6
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
- Tên files và thư mục có thể chứa khoảng trắng và 1 số ký tự đặc biệt. Một điểm
cần lưu ý là Linux phân biệt chữ hoa/thường.
II. Các hệ thống file sử dụng trong Linux
Các định dạng chính xác mà các tệp được lưu trữ là không quan trọng, hệ
thống cung cấp một giao diện chung cho tất cả các kiểu hệ thống file mà nó nhận ra.
Trong Linux, các kiểu hệ thống file bao gồm ext2, ext2fs, mà chúng ta có thể sử
dụng để lưu trữ tệp tin của Linux (ext3 cũng đang dần phổ biến); hệ thống VFAT
cho phép truy cập file nằm tại phân vùng Windows 95/98/ME và đĩa mềm trên
Linux; và vài kiểu hệ thống file khác, bao gồm các hệ thống file ISO 9660 được sử
dụng cho CD-ROM.
Mỗi kiểu hệ thống file có định dạng cơ bản khác nhau cho việc lưu trữ dữ
liệu. Tuy nhiên, khi truy cập bất kì hệ thống file trong Linux, hệ thống sẽ hiển thị
các dữ liệu như các tệp được sắp xếp thành một hệ thống các thư mục, cùng với tên
người sở hữu và nhóm nhận dạng (ID), và các đặc tính khác mà chúng ta quen
thuộc.
Trên thực tế, thông tin về quyền sở hữu files, quyền hạn truy cập,... chỉ được
cung cấp bởi các kiểu hệ thống files mà được sử dụng để lưu trữ các tệp tin Linux.
Đối với các kiểu hệ thống file không lưu trữ thông tin này, các trình điểu khiển nhân
Kernel được sử dụng để truy cập các hệ thống tệp tin “làm giả” thông tin.
Bảng 2: Liệt kê các kiểu filesystem được hỗ trở bởi nhân Linux phiên bản 2.4.10
Các kiểu hệ thống file của Linux
Hệ thống file
Kiểu
Mô tả
Second
Extended ext2
filesystem
Hệ thống file của Linux phổ biến nhất
Reiser filesystem
Một hệ thống file nhật kí cho Linux
Third
Reiserfs
Extended ext3
Một kiểu hệ thống file ghi chép cho Linux. Có
7
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
filesystem
tính tương thích ngược với ext2
Minix filesystem
Minix
Hệ thống file gốc của Minix, ít khi được sử dụng
ROM filesystem
Romfs
Một hệ thống file chỉ đọc, chủ yếu sử dụng cho
bộ nhớ RAM
CRAM filesystem
Cramfs
Một hệ thống file nén và chỉ đọc, thường được
sử dụng trên PDA
Network file system
NFS
Cho phép truy cập tệp từ xa trên mạng
UMSDOS
filesystem
Umsdos
Cài đặt Linux trên một phân vùng MS-DOS
DOS-FAT
filesystem
Msdos
Truy cập file của MS-DOS
VFAT filesystem
Vfat
Truy cập file của Windows 95/98
NT filesystem
Ntfs
Truy cập file của Windows NT
HPFS
Hpfs
Hệ thống file OS/2
/proc filesystem
Proc
Cung cấp thông tin tiến trình cho ps
Device filesystem
Devfs
Một cách đại diện cho các tệp trong thư mục /dev
ISO 9660 filesystem
iso9660
Sử dụng bởi đa số đĩa CD
Joliet filesystem
iso9660
Mở rộng của hệ thống file ISO 9660, có thể đọc
tên file Unicode
UDF filesystem
Udf
Hệ thống file cho CD-ROM mới nhất
System V filesystem
Sysv
Truy cập file từ những biến thể của System V
Coherent filesystem
coherent
Truy cập file từ Coherent
UFS filesystem
Ufs
Truy cập tệp từ hệ thống file UFS, như trên
SunOS, BSD hay Tru64 Unix
BFS filesystem
Bfs
Truy cập file trên SCO Unixware
EFS filesystem
Efs
Truy cập file trên những phiên bản Irix cũ
ADFS filesystem
Adfs
Truy cập file từ phân vùng Acorn
AFFS filesystem
Affs
Truy cập file từ phân vùng hệ thống file chuẩn
của hệ điều hành Amiga
Apple
filesystem
Mac Hfs
QNX4 filesystem
qnx4
Truy cập file từ Apple Macintosh
Truy cập file từ phân vùng QNX4
8
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
JFFS filesystem
Jffs
Một hệ thống file cho các thiết bị dựa trên Flash
Novell filesystem
Ncpfs
Truy cập file từ một máy chủ Novell qua mạng
SMB filesystem
Smbfs
Truy cập file từ một máy chủ Windows qua
mạng
Coda filesystem
Coda
Một hệ thống file mạng tiên tiến, tương tự NFS
RAM filesystem
Ramfs
Một hệ thống file cho bộ nhớ RAM
Temporary
filesystem
Tmpfs
Một kiểu hệ thống file khác được giữ trong RAM
Mỗi loại tệp tin hệ thống có thuộc tính riêng và giới hạn của nó.
Hầu hết các công việc với Linux, ta sẽ sử dụng Second Extended (ext2) hỗ trợ
256 ký tự tên tệp tin, kích thước 32 Terabyte cho một file và nhiều điều khác.
Hoặc Reiser (reiserfs) hay Third Extended (ext3). Trước đó hệ thống Linux sử dụng
Extended và hệ thống tập tin Minix. Minix được sử dụng vì Linux ban đầu được
biên soạn qua Minix và nó đã được đơn giản để bổ sung trong các hạt nhân ban đầu.
Hệ thống file Xia và Xenix có sẵn trong hạt nhân Linux cũ và không còn được
hỗ trợ. Sự khác biệt chính giữa các hệ thống tệp tin Ext2 và Reiser là Reiser được
lưu lại nhật kí dữ liệu. Lưu nhật kí dữ liệu là một kỹ thuật tiên tiến theo dõi những
thay đổi đối với một hệ thống file, giúp nó dễ dàng hơn và nhanh hơn để khôi phục
lại một hệ thống tập tin bị lỗi . Một kiểu hệ thống file lưu nhật là Ext3, sự kế thừa
của Ext3. Điều này có lợi thế là tính tương thích ngược với Exxt2.
Hệ thống file ROM được sử dụng tại Ramdisks trong việc cấu hình hệ thống,
thời gian khởi động, hay thậm chí trong EPROMS. Hệ thống tập tin Cram cũng
được sử dụng cho ROMs và có nén nội dung của nó. Điều này chủ yếu dành cho các
thiết bị nhúng, nhưng thiết bị mà không gian nhớ được đặt lên hàng đầu.
Hệ thống tập tin UMSDOS được sử dụng để cài đặt Linux dưới một thư mục
riêng của một phân vùng MS-DOS hiện có mà không cần chia lại phân vùng. Hệ
thống file DOS-FAT được sử dụng để truy cập MS-DOS các tập tin trực tiếp. Tập tin
9
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
trên phân vùng được tạo ra bởi Windows 95 hoặc 98 có thể được truy cập thông qua
VFAT, trong khi hệ thống tập tin NTFS cho phép truy cập hệ thống tập tin Windows
NT. HPFS được sử dụng để truy cập vào hệ thống tập tin OS/2.
Với việc mở rộng CVF-FAT cho DOS-FAT, nó có thể truy cập phân vùng đã
được nén với DoubleSpace/DriveSpace từ Microsoft hoặc Stacker từ Stac.
/proc là một hệ thống tập tin ảo, không có không gian đĩa trên thực tế có liên
quan với nó. Devfs cũng là một hệ thống tập tin ảo, thay thế cho các thư mục /dev
hiện tại và nó được tạo ra tự động hoặc theo yêu cầu của nhân Linux Kernel.
Các hệ thống file ISO 9660 hạn chế chiều dài tên tập tin và thông tin lưu trữ
về mỗi file được sử dụng bởi hầu hết các đĩa CD. Tuy nhiên, trong Linux hầu hết các
đĩa CD cung cấp các Rock Ridge Extension tới ISO 9660, cho phép các trình điều
khiển hệ thống file nhân Kernel để ấn định độ dài tệp tin, quyền sở hữu, và quyền
hạn cho mỗi file.
Tiếp theo, Linux có sáu loại hệ thống file cho các nền tảng khác: UFS, EFS,
BFS, System V và Coherent hỗ trợ các định dạng được phổ biến trên những nền
tảng để cho phép khởi động kép và tương tác khác. Nếu có hệ thống tập tin được tạo
ra trong một trong những định dạng theo một hệ điều hành khác, chúng ta sẽ có thể
truy cập các tệp tin đó từ Linux.
Cuối cùng, có một số lượng lớn các kiểu hệ thống file để truy cập dữ liệu trên
những phân vùng, chúng được tạo ra bởi hệ điều hành khác DOS và Unix. Những hệ
thống file hỗ trợ hệ thống Acorn Filing Disk (ADFS), các hệ thống file của
AmigaOS (không hỗ trợ đĩa mềm ngoại trừ trên AmigasOS), Apple Mac HFS, và hệ
thống file QNX4. Hầu hết hệ thống file chuyên dụng chỉ có ích trên những kiến trúc
phần cứng nhất định.
III. Gắn kết hệ thống file
Gán kết (mount) hệ thống file:
10
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
-
Mọi hệ thống file trên Linux đều phải mount mới có thể sử dụng được.
Mount là thao tác gán kết một hệ thống file vào một thư mục nào đó (mount point)
trong cây thư mục gốc /. Mọi truy cập đến thư mục mount point được hiểu là truy
cập vào hệ thống file đã mount.
Trong quá trình boot, lệnh mount sẽ được gọi để gán kết tất cả các hệ thống file
chỉ định trong file / etc / fstab. Điều này làm cho các tệp tin trên hệ thống file xuất
hiện như thể chúng thường trú trong thư mục đó, và cho phép truy cập chúng.
Định dạng của lệnh mount như sau:
mount -t type device mount-point
• type là tên loại hệ thống file được liệt kê trong Bảng 1
• device là thiết bị vật lý mà hệ thống file thường trú (tệp tin thiết bị trong /dev)
• mount-point là thư mục mà trên đó để gắn kết các hệ thống file.
Chúng ta phải tạo thư mục trước khi tiến hành mount.
Ví dụ, nếu chúng ta có một Second Extended filesystem trên phân vùng /dev/hda2
và muốn gắn kết trên thư mục /mnt, sử dụng câu lệnh:
mount -t ext2 /dev/hda2 /mnt
Mount partition Win 9x :
Mount –t vfat / dev / hda1 / mnt / win
•
Giả sử / dev / hda1 là partition cài windows 9x (ổ C)
•
Đọc ghi trong thư mục / mnt / win như trên ổ đĩa C : của Windows 9x.
Mount ổ đĩa USB :
Mount / dev / sda1 / mnt / usb
•
/ dev / sda1 là tên thiết bị USB 1 (khe cắm đầu tiên)
11
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
•
Trường hợp máy đã có / dev / sda là thiết bị SCSI HDD, tên thiết bị USB sẽ
là / dev / sdb.
Mount ổ đĩa SCSI vào thư mục / mnt / temp :
mount / dev / sda1 / mnt / temp
•
/ dev / sda1 là partition1 của ổ đĩa SCSI HDD 1
Với lệnh mount, mount point có thể là bất cứ thư mục nào, tuy nhiên thông
thường nên đặt trong / mnt.
Để gắn kết các hệ thống file với tùy chọn chỉ đọc. Tất cả việc ghi vào hệ
thống file sẽ gặp lỗi “từ chối do quyền hạn” :
mount: block device /dev/cdrom is write-protected, mounting read-only
Chúng ta nên sử dụng lệnh:
mount -t iso9660 -r /dev/cdrom /mnt
Điều này sẽ là cần thiết nếu chúng ta đang cố gắng gắn kết một đĩa mềm có
bảo vệ chống ghi.
Một biến thể hữu ích của việc sử dụng mount là mount -a, trong đó gắn kết tất
cả các hệ thống file được liệt kê trong /etc/fstab trừ những hệ thống file được đánh
dấu với các tùy chọn noauto.
Nghịch đảo của việc gắn kết hệ thống file là unmounting (ngắt gắn kết). Ngắt
gắn kết hệ thống file có hai tác dụng: đồng bộ bộ đệm của hệ thống với những nội
dung thực tại của hệ thống file trên đĩa, và làm cho hệ thống file không còn khả
dụng từ điểm gắn kết của nó.
Để ngắt gắn kết bất kì hệ thống file nào được gắn trên một thư mục cụ thể, sử
dụng lệnh:
umount /mnt
Điều quan trọng cần lưu ý là phương tiện di động, bao gồm đĩa mềm và đĩa
CD, không nên bỏ ra khỏi ổ đĩa hoặc đổi chỗ cho ổ đĩa khác trong khi gắn kết. Điều
12
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
này làm cho thông tin của hệ thống trên thiết bị không đồng bộ với những gì thực sự
ở đó và có thể dẫn đến những rắc rối. Khi muốn chuyển đổi đĩa mềm hoặc đĩa CDROM, ngắt gắn kết nó trước, sử dụng lệnh umount, cho đĩa mới vào, và sau đó gắn
kết nối thiết bị đó. Tất nhiên, với một đĩa CD hoặc đĩa mềm được bảo vệ chống ghi,
không có cách nào các thiết bị có thể tự nó ra khỏi đồng bộ, nhưng chúng ta có thể
gặp các vấn đề khác. Ví dụ, một số ổ đĩa CD-ROM không cho phép đẩy ra đĩa cho
đến khi nó được ngắt gắn kết.
Đọc và ghi vào hệ thống file trên đĩa mềm được đưa vào vùng đệm. Điều này
có nghĩa rằng khi chúng ta đọc hoặc ghi dữ liệu vào đĩa mềm, có thể không có bất
kỳ hoạt động nào của ổ đĩa xảy ra ngay lập tức. Hệ thống xử lý I/O trên đĩa mềm
không đồng bộ và chỉ đọc hoặc ghi dữ liệu khi thật cần thiết. Vì vậy, nếu chúng ta
sao chép một tập tin nhỏ vào đĩa mềm, nhưng đèn trên ổ đĩa không sáng, cứ bình
tĩnh, các dữ liệu sẽ được viết vào sau. Có thể sử dụng lệnh sync để buộc hệ thống
phải viết tất cả các hệ thống file trong vùng đệm vào đĩa, gây ra việc ghi vật lý của
bất kỳ dữ liệu đệm nào. Ngắt gắn kết hệ thống file làm cho điều này xảy ra là tốt
hơn.
Nếu muốn cho phép người sử dụng gắn kết và ngắt gắn kết nhất định, chúng
ta có hai lựa chọn. Lựa chọn đầu tiên là bao gồm tùy chọn user cho thiết bị trong
/etc/. Việc này cho phép người dùng sử dụng lệnh mount và umount cho một thiết bị
nhất định. Một lựa chọn khác là sử dụng một trong những gắn kết giao diện người
dùng cho Linux.
Một vài điều có thể đi sai khi cố gắng gắn kết một hệ thống file. Không may,
lệnh mount sẽ cung cấp các thông báo lỗi tương tự để đáp ứng với một số vấn đề:
mount: wrong fs type, /dev/cdrom already mounted, /mnt busy, or other error
•
wrong fs type : có thể có quy định các kiểu sai. Nếu không chỉ định một
kiểu, mount cố gắng đoán các kiểu hệ thống file từ superblock (chỉ làm việc với
Minix, ext2 và iso9660). Nếu gắn kết vẫn không thể xác định các kiểu hệ thống
13
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
file, nó sẽ thử tất cả các kiểu mà các trình điều khiển bao gồm trong nhân Kernel
(như được liệt kê trong /proc/filesystems). Nếu điều này vẫn không dẫn đến thành
công, mount thất bại. device already mounted: các thiết bị đã được lắp vào thư mục
khác.
Chúng ta có thể tìm ra những thiết bị được gắn kết, ở đâu, bằng cách sử dụng
lệnh mount không có đối số:
rutabaga# mount
/dev/hda2 on / type ext2 (rw)
/dev/hda3 on /windows type vfat (rw)
/dev/cdrom on /cdrom type iso9660 (ro)
/proc on /proc type proc (rw,none)
Ở đây, chúng ta thấy hai phân vùng ổ cứng, kiểu ext2 và vfat, một đĩa CD
được gắn kết vào /cdrom, và hệ thống file /proc. Các trường cuối cùng của mỗi
dòng (ví dụ (rw)) liệt kê các tùy chọn theo hệ thống file được gắn kết. Lưu ý rằng
các thiết bị CD-ROM được gắn kết vào /cdrom. Nếu sử dụng đĩa CD thường xuyên,
sẽ thuận tiện nếu tạo ra một thư mục đặc biệt như /cdrom và gắn kết với thiết bị
đó. /mnt thường được sử dụng tạm thời để gắn kết hệ thống file như đĩa mềm.
Lỗi mount-point busy có nghĩa là một số hoạt động đang diễn ra tại mountpoint đó ngăn cản chúng ta gắn kết hệ thống file ở đó, có một tệp tin đang mở dưới
thư mục này, hoặc quá trình đã có một số thư mục hiện hành làm việc dưới mountpoint. Khi sử dụng mount, hãy chắc chắn root không nằm mount-point; dùng lệnh
cd/ để vào thư mục cấp cao nhất, hoặc filesystem khác có thể được gắn kết với cùng
mount-point. Sử dụng mount không có đối số để tìm hiểu.
Đĩa mềm đặc biệt dễ bị các khuyết tật về thể chất và đĩa CD bị bụi bám, trầy
xước và dấu vân tay, cũng như được đưa lộn ngược. (Nếu chúng ta cố gắng để gắn
14
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
kết các định dạng Stan Rogers CD như ISO 9660, chúng ta có thể sẽ đi vào các vấn
đề tương tự)
Ngoài ra, hãy chắc chắn điểm lắp chúng ta đang cố gắng sử dụng (chẳng hạn
như là /mnt) tồn tại. Nếu không, chúng ta có thể tạo ra nó bằng lệnh mkdir.
Hệ thống tự động gắn kết một số hệ thống file khi hệ thống khởi động. Điều
này được xử lý bởi các tập tin /etc/fstab, trong đó bao gồm một đầu vào cho mỗi hệ
thống tập tin đó phải được gắn kết vào lúc khởi động. Mỗi dòng trong tập tin này là
của các định dạng:
device mount-point type options
Ở đây, device, mount-point, và type tương đương với ý nghĩa của chúng trong
các lệnh mount, và option là một danh sách các lựa chọn.
IV. Một số lệnh quản lý
1. Tạo thư mục
- Cú pháp: mkdir [options] dir_names.
Ví dụ: Tạo thư mục dir2:
mkdir -p /home/user2/dir1/dir2
2.Chuyển thư mục
- Cú pháp: cd dir_name.
Ví dụ: Chuyển về /etc/init.d:
cd /etc/init.d
3. Copy files
- Cú pháp: cp [options] file1 file2
- Options: Một số tùy chọn thường dùng:
•
i : Hỏi trước khi overwrite (thường dùng khi copy với quyền root).
•
f : Hverwrite mà không cần hỏi (thường dùng khi copy với quyền của user
thường).
15
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
•
r : Copy đệ qui, copy cả những thư mục con, cháu,....
•
p : Copy theo thông tin trên inode (modify time, quyền hạn,...).
4. Move và rename file
- Cú pháp: mv [options] file1 file2.
Ví dụ: mv file.txt newfile.txt
mv file.txt dir1/file.txt
5. Xóa files và thư mục
- Cú pháp : rm [options] files.
- Options: một số tùy chọn thường dùng:
•
f : xóa không cần hỏi (thường dùng khi xóa với quyền user thường).
•
I : hỏi trước khi xóa (thường dùng khi xóa với quyền root).
•
r : xóa cả files và thư mục con.
V. Quyền hạn đối với File
1. Sơ lược về quyền
Trên Linux, quyền trên files hoặc thư mục được ghi vào trong inode (nơi lưu trữ
thông tin về file và thư mục của file hoặc thư mục đó). Để dễ quản lý, Linux xem
mọi thứ như là file. Để xem quyền, chúng ta có thể sử dụng lệnh "ls -l" như trong
hình sau:
16
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
Hình 3: Lệnh “1s-1”
Cột đầu tiên trong kết quả của lệnh ls -l thể hiện cho quyền hạn. Phần này bao
gồm 10 bit:
• bit 1: thể hiện kiểu file (ví dụ: "-" file thường, "d" thư mục,...).
• 9 bit còn lại chia làm 3 nhóm, mỗi nhóm có 3 bit:
-
user (người dùng): những quyền truy cập của nhóm này áp dụng cho người sở
hữu tập tin.
-
group (nhóm người dùng): những quyền truy cập của nhóm này áp dụng cho
nhóm đã được gắn với tập tin.
-
other (những người khác): những quyền truy cập của nhóm này áp dụng cho tất
cả những người còn lại.
Trong mỗi nhóm (3 bit) thể hiện cho các quyền đọc (r), ghi (w), thực thi (x).
Nếu nơi nào không có quyền sẽ được ghi là denied (-).
Bảng 3: Quyền đọc (r), ghi (w), thực thi (x) trên file và thư mục
Ký
hiệu
-
File
Không có quyền
Thư mục
Không có quyền
17
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
R
Quyền xem nội dung tập tin hoặc mở Quyền xem nội dung của tập tin
tập tin
thư mục
Có thể đọc file, ví dụ dùng lệnh cat, Có thể xem nội dung trong thư
more,...
mục, ví dụ dùng lệnh ls.
W
Quyền ghi và sửa lại nội dung tập tin Quyền sửa lại nội dung của tập
hoặc xoá tập tin, thêm, bớt nội dung tin thư mục, tạo thêm hoặc xóa
trong file.
đi file hoặc thư mục con của thư
mục này.
X
Quyền này được gắn với các tập tin
lệnh. Có thể thực thi file này, chỉ dùng
trong trường hợp đây là program hoặc
script.
2.
Quyền vào các thư mục. Có thể
truy cập trong thư mục được.
Ví dụ: dùng lệnh cd vào thư
mục này.
Thay đổi quyền
Chỉ có user có quyền root (/), hoặc user là chủ sở hữu của file mới có thể
thay đổi quyền của file đó. Lệnh chuyển quyền: chmod mode file
Trong đó mode có thể được viết theo 2 cách: symbolic mode hoặc octal mode.
• Symbolic mode
18
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
Hình 4 : Symbolic mode
Trong mode này chúng ta có thể thêm (+), bớt (-), gán (=) các quyền (r w x)
cho từng nhóm (u g o) hoặc cho cả 3 nhóm (a).
Ưu điểm của mode này là chúng ta có thể kế thừa quyền.
•
Octal mode
Các quyền trên hệ thống Linux có thể được mô tả qua các số từ 0 đến 7 trong
hệ thập phân. Ví dụ một user hay group có quyền R (read), W (write), E (execute)
đối với 1 file/folder thì được kí hiệu là 1, ngược lại là 0 nếu không có quyền tương
ứng (-). Và với phép chuyển từ số nhị phân sang thập phân chúng ta có bảng giá trị
sau:
19
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
Bảng4 : Các quyền trong Linux tương ứng với giá trị số thập phân và nhị
phân
Hệ cơ số 10
Hệ cơ số 2
Quyền tương ứng
0
000
---
1
001
--x
2
010
-w-
3
011
-wx
4
100
r--
5
101
r-x
6
110
rw-
7
111
rwx
Quyền sẽ được tính tổng trên từng nhóm.
Ví dụ: r--(4) + -w-(2) + --x(1)= 7
Khi gán quyền phải gán cho cả 3 nhóm (user, group, other mỗi nhóm chiếm 3 bit)
Khi dùng octal mode chúng ta không kế thừa được quyền củ, nhưng bù lại chúng
ngắn gọn và dễ dùng hơn.
3. Quyền mặc định
Khi chúng ta tạo ra file hoặc thư mục, mặc nhiên hệ thống sẽ gán cho 1 quyền
mặc định, trong đó:
-
Đối với file:
-
Đối với thư mục: 777 rwx rwx rwx
666 rw- rw- rw-
Để thay đổi quyền mặc định khi tạo file và thư mục, hệ thống cung cấp cho chúng ta
một công cụ đó là umask.
Như vậy, khi tạo ra file hoặc thư mục, thì quyền mặc định được tính như sau:
-
File: 666 - umask
20
Nghiên cứu tìm hiểu về hệ thống tệp tin trong HĐH Linux
-
Thư mục: 777 – umask
Ta dùng lệnh sau để gán quyền truy cập
$ umask 066
$ touch test.txt
Ví dụ: Quyền truy cập mặc định: 666 = 110 110 110
Giá trị umask:
123 = 001 010 011
Lấy nghịch đảo giá trị umask:
NOT (Giá trị umask) = NOT (001 010 011) = 110 101 100
Quyền truy cập cho phép:
110 110 110 AND 110 101 100
= 110 100 100 ( = 644 trong cơ số 10)
Ví dụ: Nếu umask=022 thì quyền mặc định trên file và thư mục sẽ là (644) và (755)
THE END
21