
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 tin vàổ ứ ứ ổ ề ấ ả ậ
th m c đ u n m d i th m c g c, ngay c nh ng t p tin bi u t ng cho các đĩa c ng. ư ụ ề ằ ướ ư ụ ố ả ữ ậ ể ượ ổ ứ
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 tr 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 tin 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 tra 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 thê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 tin 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).ữ ệ ậ ả

đĩ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 tiênỔ ứ ầ
•/dev/sdb đĩa c ng SCSI th haiỔ ứ ứ
•/dev/fd0 đĩa m m đ u tiên Ổ ề ầ
•/dev/fd1 đĩ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 tin hda1 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ậ ơ ả ơ ỉ ể ố ứ ự ừ
(hda1, 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 ls 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:ộ ậ ư

P/s: đ xem thông tin m t file dùng l nh ls-l <file path>ể ộ ệ
1. Xác đ nh thông tin các quy n truy c p t p tinị ề ậ ậ
•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ư ụ
l T p tin liên k t (m m/c ng)ậ ế ề ứ
•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 ng là r-w-e còn ký hi u ‘-‘ề ả ệ ươ ứ ệ
ch ng 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ìề ọ ể ạ ề ọ
không có nghĩa là có quy n ghi (s a đ i) file nh ng vì có th sao chép l i fileề ử ổ ư ể ạ
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, emacs, … đ 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 trìnhề ề ọ ườ ể
so n th o đ s a ch a file nh ng ng i dùng có th dùng l nh ạ ả ể ử ữ ư ườ ể ệ cat
>>document.txt đ ghi thê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 ng file ki u nàyứ ệ ầ ự ệ ữ ể
đ c g i là script. Quy n th c thi file đ c l p v i quy n đ c và ghi file. 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 nh ng 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 y ra tr ng h p: có quy n th c thi nh ng 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 U1 có file FileOfU1 đ t trong /home/U1 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/U1 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/U1/FileOfU1ị ề ể ọ
đ 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 <quy n> <file>ề (vi t t t chmod = change mode)ế ắ
Có 2 cách bi u di n <quy 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ể ễ ề ằ ự ề ượ ể ễ ằ ổ ợ ạ ự
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 myfile và chmod u=r,o=x myfile 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, o. Giá tr m i ch s octal bi u di n m t quy n theo b ng sau:ố ượ ị ỗ ữ ố ể ễ ộ ề ả
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-l cho m t file đã đ c set UID ho c GID thì s th y kí t x ch quy nế ệ ộ ượ ặ ẽ ấ ự ỉ ề
execute đã đ c thay th b ng kí t s. Ví d :ượ ế ằ ự ụ
-rws–x–x 1 root root 14024 Sep 9 1999 file1
-rwxr-sr-x 1 root mail 12072 Aug 16 1999 file2

