Nội dung
Nội dung
3.1. Tổng quan về hệ thống file
3.1.1. Một số khái niệm
3.1.2. Sơ bộ kiến trúc nội tại của hệ thống file
3.1.3. Một số thuật toán làm việc với inode
3.1.4. Hỗ trợ nhiều hệ thống file
3.1.5. Liên kết tượng trưng
3.2. Quyền truy nhập thư mục và file
3.2.1. Các quyền truy nhập
3.2.2. Các lệnh cơ bản chmod, chown, chgrp
04/01/14
2
3.3. Thao tác với thư mục
3.3.1. Một số thư mục đặc biệt
3.3.2. Các lệnh cơ bản về thư mục
3.4. Các lệnh làm việc với file
3.4.1. Các kiểu file có trong Linux
3.4.2. Các lệnh tạo file
3.4.3. Các lệnh thao tác trên file
3.4.4. Các lệnh thao tác theo nội dung file
3.4.5. Các lệnh tìm file
3.5. Sao lưu và nén dữ liệu
3.5.1. Sao lưu các file
3.5.2. Nén dữ liệu
Tệp và thư mục
Tệp và thư mục
Tệp (file) là đơn vị lưu trữ nhỏ nhất trong hệ điều
hành Unix/Linux
Tệp là một chuỗi byte
Thư mục trong Unix là một loại tệp đặc biệt, dùng để
quản lý thông tin về các file khác
Tên tệp/Tên thư mục
Tên tệp/Tên thư mục
Tệp và thư mục được phân biệt qua tên
Tên tệp/thư mục có thể dài 256 ký tự, bao gồm chữ,
số, gạch chân, dấu chấm, dấu cách
Các ký tự không được sử dụng trong tên tệp/thư
mục: !, *, $, &, #
Tập các tệp có trong máy do Unix/Linux quản lý được
gọi là “hệ thống tệp”
Ký hiệu chỉ nhóm tệp
Ký hiệu chỉ nhóm tệp
Có thể sử dụng các ký hiệu đặc biệt * và ? để chỉ định
nhóm các tệp
Ví dụ:
ab*: Tất cả các tệp có tên bắt đầu bằng ab
ab*.c: Tất cả các tệp có tên bắt đầu bằng ab và kết thúc
bằng .c
a?cd: Tất cả các tệp có tên bắt đầu bằng chữ a, sau đó là
một ký tự bất kỳ rồi kết thúc là cd
Cấu trúc hệ thống tệp
Cấu trúc hệ thống tệp
Một số tên thư mục
đặc biệt:
“/”: Thư mục gốc
“.”: Thư mục hiện hành
“ ”: Thư mục cha
Ví dụ:
“/”: Thư mục gốc
“usr” là thư mục con của
“/” và là thư mục cha
của “lib”, “local”…
Đường dẫn (path)
Đường dẫn (path)
Để định vị một tệp hoặc một thư mục trong hệ thống
tệp, ta cần một đường dẫn
Ví dụ:
Đường dẫn đến thư mục: /usr/bin
Đường dẫn đến tệp: /usr/bin/vi (vi là tên một hệ soạn thảo
văn bản trên Unix)
Đường dẫn có nhiều thành phần, các thành phần là
tên thư mục hoặc tên tệp (thường ở vị trí cuối cùng)
cách nhau bởi dấu “/”
Đường dẫn tuyệt đối và tương đối
Đường dẫn tuyệt đối và tương đối
Đường dẫn tuyệt đối bắt đầu bởi dấu “/”
Đường dẫn tương đối dùng để chỉ cách định vị
tệp/thư mục từ thư mục hiện hành
Kiến trúc bên trong hệ thống tệp
Kiến trúc bên trong hệ thống tệp
Không bắt buộc học phần này
Xem trong giáo trình, mục 3.1.2, 3.1.3 trang 40 đến
trang 49
Liên kết
Liên kết
Unix có 2 kiểu liên kết
Liên kết cứng
Liên kết tượng trưng (liên kết mềm)
Liên kết cứng cho phép chúng ta tạo thêm file một
cách định vị trong hệ thống tệp (không có liên kết
cứng đến thư mục)
Liên kết mềm là một kiểu tệp đặc biệt tham chiếu
đến tên một tệp hoặc thư mục khác
Phân quyền truy xuất trên tập tin và thư
mục
Các quyền truy xuất trên tập tin và thư mục
Lệnh chmod
Thay đổi đối tượng sở hữu tập tin
Phân quyền truy xuất trên tập tin và thư
mục
Quyền truy cập một tệp/thư mục qui định nhóm
người sử dụng nào được phép làm gì (thao tác) trên
tệp thư mục đó
Các nhóm người sử dụng
User (người sở hữu), ký hiệu là u
Group (những người cùng nhóm), ký hiệu là g
Other (những người khác), ký hiệu là o
All (tất cả mọi người), ký hiệu là a
Phân quyền truy xuất trên tập tin và thư
mục
Quyền truy nhập tập tin và thư mục được quy định với những
thuộc tính sau:
Quyền Tệp tin Thư mục
r Read – đọc Xem nội dung của tệp
tin, có nghĩa là dùng
được lệnh cat
Xem nội dung của thư
mục, có nghĩa là dùng
được lệnh ls với thư mục
w Write – ghi Thuộc tính ghi (hiệu
chỉnh nội dung)
Được tạo mới/xóa tệp
tin/thư mục con trong thư
mục đó
x eXecute –
thực thi
Thuộc tính thực thi
(chạy chương trình)
Được chuyển vào trong
thư mục bằng lệnh cd
- None Không có quyền Không có quyền
Trình bày nội dung các tập tin và thư mục được thiết
lập quyền (set permission) trong thư mục cá nhân
(Home Directory) của người dùng tên là ngochan
Chú ý đến các thuộc tính sau:
Cờ đầu tiên (cờ đặc tính) chỉ loại file:
Có 3 đối tượng chính là owner, group, other và mỗi đối tượng có 3
quyền cụ thể read, write, execute với file
Thiết lập (thay đổi) thuộc tính truy nhập cho tập tin và thư mục
bằng lệnh
chmod
chmod Phải thực hiện bằng quyền của
ROOT
ROOT hoặc
chủ
chủ
sở hữu
sở hữu
- File thông thường
d Thư mục
p Kiểu đường ống pipe
s Socket
Ví dụ:
Ví dụ:
Khi người dùng tạo ra một tập tin (hoặc thư mục) người
dùng là chủ sở hữu (
Owner
Owner)
Mặc định quyền được thiết lập với file là read - write ~ rw
Mặc định quyền được thiết lập với thư mục là read write execute ~
rwx
Nếu muốn chia sẻ với người khác, cần thiết lập quyền cho
nhóm – (
Group
Group)
Ví dụ:
Thay đổi quyền truy nhập với lệnh
chmod
chmod
Qua lệnh chmod ta có thể thay đổi quyền r-w-x của đối tượng
như user, group, other hay all đối với tập tin (hoặc thư mục).
Quyền truy nhập tập tin còn phụ thuộc vào thư mục chứa nó
Quyền truy nhập tập tin còn phụ thuộc vào thư mục chứa nó.
Ví dụ:
Ta có một tập tin info trong thư mục VIDU.
Thiết lập quyền với info cho other là
x
x (chỉ execute)
nhưng với thư mục VIDU ta lại thiết lập cho other là
(không có tính
năng execute)
Thì tập tin info đối với người dùng không phải owner và group thì
KHÔNG được quyền thực thi.
Lệnh chmod có thể thực hiện theo cách xác lập tương đối
hoặc tuyệt đối
Cách xác lập tương đối
Cách xác lập tương đối
Cách xác lập tương đối là dễ nhớ theo ý nghĩa của nội dung các mod và chỉ
những thay đổi thực sự mới được biểu diễn trong lệnh
Ví dụ:
chmod g+w test
chmod o-rx test
Ta có thể thay đổi quyền truy nhập theo giá trị tuyệt đối ở bảng sau:
Nếu tập tin apple cần thiết lập quyền
{r-x r -w-}
{r-x r -w-} ứng với những mã số tính theo
cách sau:
r-x owner {r = 4; w = 0; x = 1} 4 + 0 + 1 = 5
r group {r = 4; w = 0; x = 0} 4 + 0 + 0 = 4
-w- other {r = 0; w = 2; x = 0} 0 + 2 + 0 = 2
Vậy giá trị cần đặt cho apple là 542.
Dùng lệnh: $chmod 542 apple
Xác lập tuyệt đối
Xác lập tuyệt đối
Thay đổi quyền sở hữu tập tin
Thay đổi người sở hữu:
chown <tên người sở hữu> <tên tệp>
Luôn phải là root hoặc tương đương
#
chown
chown username_mới tên_tệp
$
sudo chown
sudo chown username_mới tên_tệp
Thay đổi nhóm:
chgrp <tên nhóm> <tên tệp>
Kịch bản cho việc phân quyền
Kịch bản cho việc phân quyền
Sudoer: ngochan / hoặc root
Standard user: dev1
Standard user: dev2
dev1 & dev2 thuộc nhóm 54pm1 và chuyển sang
nhóm này sau khi đăng nhập (lệnh newgrp)
chmod g+w dev1
dev1 tạo file -> dev2 vẫn xóa được
User ngochan -> root
User ngochan -> root
root@ubuntu:/home# tail -4 /etc/group
admin:x:110:ngochan
ftp:x:111:ftp
dev1:x:1001:
dev2:x:1004:
root@ubuntu:/home# groupadd 54pm1
root@ubuntu:/home# usermod -g 54pm1 dev1
root@ubuntu:/home# usermod -g 54pm1 dev2
root@ubuntu:/home# ls -l dev1
drwxr-xr-x 2 dev1 54pm1 4096 2012-10-26 14:32 dev1
root@ubuntu:/home# chmod g+w dev1
root@ubuntu:/home# ls -l dev*
drwxrwxr-x 2 dev1 54pm1 4096 2012-10-26 14:32 dev1
drwxr-xr-x 2 dev2 54pm1 4096 2012-10-26 14:28 dev2
root@ubuntu:/home#
User dev1
User dev1
dev1@ubuntu:~$ cat > dev1diary
Nhat ky cua dev1
dev1@ubuntu:~$ ls -l dev1diary
-rw-rw-r 1 dev1 dev1 17 2012-10-26 14:32 dev1diary
dev1@ubuntu:~$ chmod og-rx dev1diary
dev1@ubuntu:~$ ls -l dev1diary
-rw 1 dev1 dev1 17 2012-10-26 14:32 dev1diary
dev1@ubuntu:~$ ls -l
total 0
dev1@ubuntu:~$
User dev2
User dev2
dev2@ubuntu:~$ newgrp 54pm1
dev2@ubuntu:~$ cd /home/dev1
dev2@ubuntu:/home/dev1$ ls
dev1diary
dev2@ubuntu:/home/dev1$ cat dev1diary
Nhat ky cua dev1
dev2@ubuntu:/home/dev1$ ls
dev1diary
dev2@ubuntu:/home/dev1$ rm dev1diary
rm: remove write-protected regular file `dev1diary'? y
dev2@ubuntu:/home/dev1$ ls -l
total 0
dev2@ubuntu:/home/dev1$