Kiến Thức Cơ Bản Slackware Linux
5.2 Cấu
trúc hệ thống tệp tin(Filesystem Structure)
Chúng ta đã làm quen với cấu trúc catalog
trong Slackware Linux.Bạn biết cách tìm kiếm các
tệp tin,catalog cần thiết.Linux là một hệ thống đa tài
khoản.Tất cả các thành phần coi như là một hệ thống
tệp tin.Hệ thống này cất giữ thông tin của từng người
riêng biệt không xâm phạm lẫn nhau(nếu không cho
phép).Và no còn cho phép sử dụng ảnh
và kết nối NFS.Ở trong phần này chúng ta chủ yếu
xem xét các khía cạnh khác nhau của
tính đa tài khoản trên cấu trúc hệ thống tệp
tin.
5.2.1 Quyền chủ
sở hữu
Hệ thống tệp tin lưu trữ thông tin về quyền chủ sở hữu cho từng
tệp tin cũng như catalog.Bao gồm thông tin về tài
khoản,nhóm mà nó trực thuộc.Phương pháp đơn
giải để xem những thông tin ấy là dung lệnh ls:
$ ls -l /usr/bin/wc
-rwxr-xr-x 1
root bin 7368 Jul 30
1999 /usr/bin/wc
Chúng ta không quan tâm tới cột thứ ba và thứ
tư.Chúnh chứa thông tin về tên và nhóm
mà tệp tin trực thuộc.Trong ví dụ trên file thuộc
tài khoản root và nhóm bin.
Chủ của file có thể thay đổi bởi lệnh chown(1)(có nghĩa là
"change owner"- thay đổi chủ sở hữu),còn nhóm thì
có thể bằng lệnh chgrp("change group -Thay đổi nhóm sở
hữu").Để thay đổi chủ sở hữu là "daemon" thì cần lam như
sau:
#chown daemon /usr/bin/wc
Còn muốn chuyển nhóm sang "root" thì làm
như sau:
#chgrp root /usr/bin/wc
Lênh chown có thể sử dụng theo cách sau:
# chown daemon.root /usr/bin/wc
Tính sở hữu files được coi là một phần quan trọng
trên hệ thống Linux thậm chí ngay cả khi có duy nhất
một tài khoản trên hệ thống mà đôi khi bạn vẫn
phải cần chỉnh lại quyền sở hữu các files và các
nodes thiết bị.
5.2.2 Quyền
truy cập
Quyền truy cập - cũng là
một trong những phát sinh trên hệ thống đa tài
khoản Linux.Nhờ có nó mà bạn có thể
đọc,ghi,xoá chúng.
Quyền truy cập được lưu trữ ở dạng bốn con số thuộc cơ số
tám.Mỗi số đại diện cho một quyền hạn với một block
riêng.Block chủ sở hữu,block nhóm,và block cho
các đối tượng còn lại.Bốn số hệ tám này sử
dụng để lưu lại thông tin đặc biệt như :ID chủ sở hữu,ID nhóm sở
hữu,"sticky" bits.Giá trị các số này tương
ứng với quyền hạn sử dụng(Nó có thể sử dụng chữ để diễn
tả và được hiển thị bởi các chương trình như ls
và có thể sử dụng với chmod:
Kiểu
|
Giá
trị (cơ số 8)
|
Chữ
|
"sticky"
bits
|
1
|
t
|
set
user ID
|
4
|
s
|
set
group ID
|
2
|
s
|
read
|
4
|
r
|
write
|
2
|
w
|
execute
|
1
|
x
|
Gía trị của các nhóm quyền hạn có thể cộng
lại.Chẳng hạn bạn muốn quyền hạn của nhóm là "read"
và "write" thì bạn có thể sử dụng giá trị
"6".Quền hạn theo ngầm địng của bash:
$ ls -l /bin/bash
-rwxr-xr-x 1
root bin 477692 Mar 21 19:57 /bin/bash
Trong ví dụ trên ta thấy tiền tố đầu "-" là
dùng chỉ định rằng đấy là tệp tin,còn nếu là
"d" - dành cho catalog.Bạn nhìn thấy ba nhóm quền
hạn sử dụng(chủ sở hữu,nhóm sở hữu,nhóm còn
lại),trong đó chủ sở hữu có quền hạn "rwx"(đọc,ghi,thực
thi),còn nhóm sở hữu có quyền hạn "r-x"(đọc,thực
thi) và các nhóm còn lại có quyền hạn
"r-x"(đọc,thực thi).
Vậy chúng ta sẽ gán quền hạn sử dụng cho các tệp
tin như thế nào.Bạn hãy quan sát ví dụ sau:
$ touch /tmp/example
$ ls -l /tmp/example
-rw-rw-r- 1
david users 0 Apr 19 11:21
/tmp/example
Chúng ta sử dụng chmod(1)("change mode"- thay đổi cách
thức) để tiến hành gán quền hạn sử dụng cho tệp tin
Hãy cộng các số(trong cơ số 8) để có được quền hạn
mà bạn muốn.Để cho chủ sở hữu có đủ quền hạn(đọc,ghi,thực
thi) thì bạn cần sử dụng số 7,(đọc và thực thi) là
số 5.Chúng ta hãy tiến hành gán chúng
cho tệp tin:
$ chmod 755 /tmp/example
$ ls -l /tmp/example
-rwxr-xr-x 1
david users 0 Apr 19 11:21
/tmp/example
Tuy nhiên bạn có thể ghĩ rằng tại sao lại không
xác định ngay quền hạn theo ngầm định cho các tệp tin mới
được tạo ra?.Câu trả lời rất đơn giản.Bash có thể thực hiện
được điều này với sự giúp đỡ của umask.Đây là
một trong các ứng dụng tiêu chuẩn trên các
phiên bản Unix.Nó xác định quền hạn mặc định cho
các tệp tin mới được sinh ra.Giá trị ngầm định của
nó là 0022.
$umask
0022
Bây giờ hãy xác định giá trị mặc định cho hệ
thống là 0077
#umask 0077
$touch tempfile
$ls -l tempfile
-rw-------- 1 david
users 0 Apr 19 11:21 tempfile
Bạn có thể xem man-pages
để có thêm thông tin.
Để tạo ra quền hạn đặc biệt thì bạn hãy cộng các
số lại và đặt chúng ở cột đầu tiên.
$ chmod 6755 /tmp/example
$ ls -l /tmp/example
-rwsr-sr-x 1
david users 0 Apr 19 11:21
/tmp/example
Tuy nhiên nếu bạn khó khăn trong việc nhớ các số
thì hãy sử dụng các chữ in.
chủ sở
hữu u
nhóm
g
nhóm còn
lại a
Để làm giống như trên bạn cần thực hiện những lệnh sau:
$ chmod a+rx /tmp/example
$ chmod u+w /tmp/example
$ chmod ug+s /tmp/example
Một vài thích làm việc với các chữ in,tuy
nhiên kết qủa vẫn là như nhau.Tóm lại chúng
ta phải nhớ cách gán quền hạn sử dụng tệp tin cho
tài khoản và nhóm tài khoản.Có khi
nào đó bạn không hiểu nó là cái
gi?Có thể nói thông thường như sau:Khi bạn khởi động
một tệp tin mà có các quền hạn như
trên,còn bạn chỉ là một người sử dụng
thông thường.Thật là công bằng,nó sẽ được thực
hiện với các quền hạn có sẵn mà bạn có.Tuy
nhiên với sự giúp đỡ của "set user ID" thì bạn
có thể bắt nó chạy với quền chủ sở hữu(ví dụ
"root"),còn "set group ID" cũng tương tự nhưng dành cho
nhóm.
Hãy cận thận,bởi vì "set user ID và set group ID"
có thể làm ảnh hưởng đến an toàn của hệ thống.Nếu
như bạn cài đặt quền hạn bằng root thì tất cả các
tài khoản khác cũng có thể sử dụng nó như
root.Nó là cả một vấn đề an toàn trên hệ
thống của bạn.
5.2.3
Liên kết(link)
Link chính là một ảnh lên files.Sử dụng link khi
bạn tạo ra các tệp tin mà có thể truy cập được từ
nhiều vị trí khác nhau,với nhiều tên khác
nhau.Có hai loại link khác nhau:Liên kết trực tiếp(Link
hard),Liên kết gián tiếp(link soft).
Link trực tiếp:Đấy đơn giản chỉ
là những tên khác nhau của cùng một tệp
tin.Nó thực hiện được chỉ trong cùng một catalog
và bị xoá khi mà tệp tin gốc
xoá.Trong một vài trường hợp có lợi nhưng hầu như
đông đảo đều sử dụng liên kết gián tiếp.
Link gián tiếp:
Có thể kết nối với những tệp tin ở bên ngoài
catalog hiện hành.Khách quan thì nó
là một tệp tin nhỏ chứa đầy đủ các thông tin cần
thiết.Bạn có thể bổ sung,xoá bổ liên kết mà
không ảnh hưởng đến tệp tin gốc.
Hầu như các Link không được gán quyền hạn truy
cập,mà thay vào đó nó hiển thị quyền hạn của
tệp tin mà nó kết nối đến.Trong Slackware sử dụng
liên kết gián tiếp là chủ yếu:
$ ls -l /bin/sh
lrwxrwxrwx 1
root root 4 Apr 6
12:34 /bin/sh -> bash
Vỏ lệnh sh trong Slackware trên thực tế chính là
bash.Bạn có thể xóa bỏ link bằng rm.Còn tạo link
bằng ln.Bạn có thể đọc man-pages của chúng để có
thêm thông tin.
5.2.4 Mount
devices(Kết nối các thiết bị)
Như đã nói trong phần "Cấu trúc hệ thống tệp
tin",tất cả các disk cũng như các thiết bị khác
trong Linux được xem như là một hệ thống các tệp tin.Những
phân vùng đĩa cứng,CD-ROM,ổ đĩa compact....chúng
thuộc trên cùng một cây thư mục.Để kết nối
chúng với các hệ thống tệp tin bạn cần sử dụng lệnh mount và umount.
Một vài hệ thống tự kết nối trong quá trình khởi
động máy tính.Chúng được liệt kê ở file
/etc/fstab.Bạn muốn chúng tự động kết nối ,hãy khai
báo chúng ở đây(trên một
dòng).Còn các thiết bị khác thì
hãy sử dụng bằng lệnh nếu muốn sử dụng chúng.
$cat /etc/fstab
dev/sda1
/ ext2 defaults 1 1
/dev/sda2
/usr/local ext2 defaults 1 1
/dev/sda4 /home ext2 defaults 1
1
/dev/sdb1 swap swap defaults 0 0
/dev/sdb3 /export ext2 defaults
1 1
none /dev/pts devpts
gid=5,mode=620 0 0
none /proc proc defaults 0 0
/dev/fd0 /mnt ext2 defaults 0 0
/dev/cdrom /cdrom iso9660
ro 0 0
Ở cột đầu tiên chỉ ra tên thiết bị.Trong trường hợp
này có năm phần của hai đĩa cứng SCSI và hai
hệ thống files đặc biệt(không cần tới hệ thống files),floppy
và ổ đĩa CD-ROM.Cột thứ hai cho biết các thiết bị sẽ kết
nối đi đâu.Catalog đó nhất thiết là phải tồn tại(trừ
phân vùng swap).Cột thứ ba cho biết định dạng hệ thống tệp
tin cho thiết bị.Thông thường định dạng cho Linux là ext2(hệ thống tệp tin mở rộng thứ
hai).Còn đối với CD-ROM sẽ là iso9660,còn đối với Windows
là vfat hoặc msdos.
Cột thứ tư liệt kê các chọn lựa mà sử dụng
khi mount các thiết
bị.Thông thường là "defaults".Tuy nhiên khi
mà gán quền truy cập cho thiết bị chỉ đọc thì
khuyến khích là "ro".Có rất nhiều các chọn
lựa khác nhau nữa,bạn có thể xem man-pages để biết thêm
thông tin.Hai cột cuối cùng sử dụng cho chương
trình fsck và
các lệnh khác.
Khi cài đặt Slackware Linux,chương trình sẽ xây
dựng lên tệp tin fstab một cách tối thiểu.Bạn có thể
bổ sung,soạn thảo lại theo mục đích của mình.
mount và umount
Trong Linux việt kết nối các thiết bị rất đơng giản.Công
việc phải làm là chạy ứng dụng mount và chỉ ra một
vài tham biến đi kèm với nó.Sử dụng lệnh này
trên thực tế nhỏ gọn hơn so với việc ghi chép vào /etc/fstab.Giả sử bạn muốn kết nối
với CD-ROM (tất nhiên fstab như trong ví dụ
trên),hãy thực hiện lệnh sau:
#mount /cdrom
Để làm được điều này thì rõ ràng
trong fstab phải đã có sẵn một dòng cho thiết bị
CD-ROM rồi,mount chỉ việc lấy các tham số trong đó
và thực hiện công việc của mình.Nếu như trong fstab
không có các thông tin về CD-ROM thì
bạn phải chỉ ra bằng tay trên lệnh
# mount -t iso9660 -o ro /dev/cdrom
/cdrom
Dòng lệnh này cũng như trong fstab nhưng trong một dạng
hình khác.Chúng ta hãy xem xét kĩ hơn
các tham biến.
"-t
iso9660" đây là định dạng hệ thống files cho thiết
bị cd-rom
"-o ro" thiết bị kết nối chỉ
dùng cho đọc
/dev/cdrom tên của
thiết bị mà sẽ kết nối tới /cdrom(catalog này mình
có thể thay đổi)
Cách ngắt kết nối với các thiết bị như thế nào(tại
thời điểm hiện tại chúng đang mounted).Bạn cần phải ngắt
chúng ra bằng lệnh umount.Tuy
nhiên tai sao không phải là unmount.Hic..câu này
khó quá chúng tôi không thể nào
trả lời được có lẽ tác giả không muốn như vậy.Bạn
có thể sử dụng tên của thiết bị hoặc là tên
của điểm mounted sau lệnh umount.Ví dụ sau dùng để ngưng
kết nối với đĩa cd-rom của bạn:
# umount /dev/cdrom
# umount /cdrom
5.2.5 NFS (
Network Filesystem)
NFS không là hệ thống tệp tin hiện thực nhưng mà
có thể sử dụng để kết nối với các thiết bị khác qua
mạng.
Hầu như trong các mạng Unix lớn,công việc phân chia
tài nguyên là rất cần thiết.Vấn đề đó được
giải quyết bởi NFS.Nó có thể phân chia một tổ hợp
catalog home giữa các trạm với nhau.Khi đó các tram
này kết nối(mount) với catalog này và sử dụng
nó như là nó trực thuôc của trạm.Xem phần
4.2.6 và man-pages để có thêm thông tin về exports(5),nfsd(5) và mount.
Biên dịch: Vũ Dũng(vudung@mail.ru)
website:http://khigiacmoquayve.narod.ru
1-9-2005 Voronezh Russian