Linux Shell
Trang 4
Chương II :
Tìm hiểu & sử dụng Linux
shell
I- Các lệnh cơ bản trong Linux Shell :
1. Phép kết gán :
Phép kết gán cho phép ánh xạ một phím cụ thể theo một hành động .
Ví dụ , khi chúng ta gõ phím ^A tại dấu nhắc hệ vỏ con trỏ sẽ nhảy đến đầu
dòng. Để thuận lợi , nhiều hệ vỏ gán sẵn cho người dùng các phím gán sau :
^A Dời con trỏ đến đầu dòng
^C Gửi một SIGINTR ( ngắt ) ra hệ vỏ
^D Hiển thị danh sách các tập tin
^E Dời đến cuối dòng
^K Triệt từ con trỏ đến cuối dòng
^N Dời xuống trong danh sách
^P Dời lên trong danh sách
^U Triệt nguyên cả dòng
^I Hoàn tất tập tin
Linux Shell
Trang 5
Trong trường hợp có nhiều tập tin bắt đầìu bằng các kí tự giống nhau , hệ
vỏ sẽ đưa vào nhiều kí tự rồi phát tiếng kêu beep thông báo cho chúng ta biết
có các khả năng khác . Ví dụ : >rmdir direct (^I)
>rmdir directory_I_want_to_
Đến đây chúng ta có thể gõ lệnh K hoặc D , ^D để có một danh
sách các tập tin trong thư mục hiện hành bắt đầìu bằng các kí tự
đó .
Đây chính là tính năng rất tiện dụng đối với các tập tin hay thư mục có tên
dài .
2. Chức năng của một số kí tự :
Kí
tự
Chức năng
* ? [ ]
Kí tự đại diện hay theo mẫu .
& Chạy ứng dụng ở chế độ nền , trả lại dấu nhắc hệ thống cho
các tác vụ khác .
; Dấu phân cách nhiều lệnh trên một dòng lệnh .
\ Tắt tác dụng của những kí tự đặc biệt như *, ?, [ , ], &, ; , >, <, |
',,,' Khi tham số là nhóm từ (có khoảng trống ) .
" " Khi tham số có khoảng trống và các kí tự đặc biệt ngoại trừ kí
tự $ và '
> Định hướng dữ liệu xuất ra file .
< Định hướng dữ liệu nhập từ file .
>> Định hướng dữ liệu xuất ra cuối file nếu file đã tồn tại .
| Định hướng dữ liệu xuất là dữ liệu nhập cho lệnh tiếp theo .
' ' Dấu huyền dữ liệu xuất của một lệnh làm tham số .
$ Sử dụng biến môi trường .
3. Cấu trúc thư mục :
Linux tổ chức thư mục và tập tin theo cấu trúc cây giống như DOS và
Windows . Về đường dẫn , ta có thêí dùng đường dẫn tương đối hoặc đường
dẫn tuyệt đối như DOS . Nhưng thay vì dùng dấu " \ " để phân cách các cấp thư
mục như trong DOS thì Linux lại dùng dấu " / " .
/etc Cấu hình hệ thống cục bộ theo máy
/usr/bin Chứa hầu hết các lệnh người dùng
/dev Các tập tin thiết bị
/usr/man Chứa các tài liệu trực tuyến
/usr/include Chứa các tạp tin chuẩn của C
/var/log Chứa các tập tin lưu trữ thông tin làm việc hiện hành của
người dùng
/home Chứa các thư mục con của các User
/usr/local Các chương trình bổ sung không thuộc thành phần của một
hệ thống . Thông thường ./usr/local có các thư mục con
như sau :
/usr/local/bin /usr/local/lib
/usr/local/man /usr/local/include
/usr/src Vị trí của mã nguồn ( kể cả mã nguồn của
HĐH Linux )
/usr/lib Chứa các tập tin thư viện của các chương trình người dùng
Linux Shell
Trang 6
Trong Linux : " . " cho biết đó là thư mục hiện hành , " " chỉ thư mục cao
hơn một cấp (thư mục mẹ ) . Nếu đường dẫn bắt đầu bằng "/ " thì hệ thống xem
đó như là một tên đường dẫn đầy đủ (tuyệt đối ) . Đường dẫn bắt đầu bằng " ~ "
là một đường dẫn tương đối. Những kí hiệu này có thể được sử dụng cùng với
nhau . Ví dụ :
" ~/ " có nghĩa là thư mục mẹ của thư mục riêng.
" / " để chỉ một thư mục cao hơn thư mục mẹ .
/home/user01# more ~/document/baocao
tương đương với
/home/user01# more home/user01/document/baocao
4.Cú pháp dòng lệnh :
Các lệnh trong Linux thường bắt đầu bằng tên lệnh (command) , sau đó
làcờ (flag) và đối số (argument ) :
Command [ flag ] argument1 argument2
Các cờ ( còn gọi là lựa chọn (option) ) trong DOS thường đứng sau " / ",
trong khi
Linux lại dùng " - ". Ví dụ: trong DOS bạn gõ " dir /a /o:d " thì trong Linux bạn gõ
là "ls - lac " .
Hầu hết các trường hợp nhiều đối số một chữ cái có thể kết hợp dùng một
dấu " - " . Ví dụ : thay vì dùng lệnh " ls -l -F " ta có thể dùng lệnh tương đương "
ls -lF " .
Các đối số phải cách nhau bởi dấu cách (space) hoặc Tab . Nếu trong đối
số có khoảng cách thì phải đặt nó trong cặp ngoặc kép ( xem thêm mục 5.11 )
5. Một số lệnh thường dùng:
5.1. Tạo thư mục :
Cú pháp : mkdir <dir1> <dir2> <dirN>
Trong đó <dir1> <dir2> <dirN> là các thư mục cần tạo .
Ví dụ : mkdir thuchanh tạo thư mục thuchanh
mkdir thuchanh/baitap1 tạo thư mục baitap1 là thư mục
con của thư mục thuchanh
5.2. Chuyển thư mục :
Cú pháp : cd <directory>
Dùng " . " để chuyển đến thư mục hiện hành , " " để chuyển đến thư
mục cha .
Ví dụ : cd /usr/local/bin
5.3. Xem thư mục hiện hành :
Cú pháp : pwd
5.4. Xoá thư mục rỗng :
Cú pháp : rmdir <dir1> <dir2> <dirN>
5.5. Xoá tập tin hoặc thư mục :
Cú pháp : rm <file1> <file2> <fileN>
5.6. Hiển thị thông tin về tập tin và thư mục :
Cú pháp : ls <danh sách file> | <Danh sách thư mục> <tham số>
<tham số> : - F : dùng để hiển thị vài thông tin về tập tin .
Sau tên file , hiển thị dấu sao (*) nếu là file thi hành , dấu (@) nếu là file
liên kết , dấu ( / ) nếu là thư mục con , dấu chấm ( . ) nếu là file ẩn .
Linux Shell
Trang 7
- l : (long) cho phép liệt kê kích thước tập tin , người tạo ra ,
các quyền người sử dụng
Để liệt kê nội dung của các thư mục con bạn có thể sử dụng cờ -R
Để liệt kê các file ẩn bạn sử dụng cờ -a
ví dụ : $ ls -lF
total 75
drwxrwxr-x 2 user 12 user 12 1024 Apr 7 09:41 baitap/
drwxrwxr-x 2 user 12 user 12 1024 Apr 7 09:41 doc/
-rwxrwxr-x 1 user 12 user 12 71 Mar 31 10:39 hello*
-rw-rw-r 1 user 12 user 12 126 Apr 7 09:26 baitho.txt
-rw-rw-r 1 user 12 user 12 70 Apr 7 08:26 hello.c
$
5.7. Di chuyển tập tin , thư mục :
Cú pháp : mv <danh sách tập tin hoặc thư mục > <đích>
<đích > : là tập tin hay thư mục
Lệnh này có thể dùng để đổi tên tập tin hoặc thư mục (tương tự lệnh
Rename của DOS).
5.8. Sao chép tập tin , thư mục :
Cú pháp : cp <nguồn > <đích >
Lệnh này không tự động sao chép các thư mục con trừ khi bạn sử dụng
cờ -R
5.9. Xoá các tập tin hoặc thư mục :
Cú pháp : rm <file> |< thư mục>
Nếu bạn dùng lệnh này kèm với cờ -i thì trước khi định xóa một file , máy
sẽ hỏi lại bạn có thực sự muốn xoá hay không .
Chú ý , lệnh rm * sẽ xoá mọi file trong thư mục hiện tại .
5.10. Hiển thị nội dung các tập tin : Mỗi lần chỉ hiển thị đầy màn hình (24
dòng ) , muốn xem trang tiếp theo thì nhấn phím spacebar .
Cú pháp : more [-n] <danh sách các tập tin >
[-n] : chỉ định số dòng mỗi lần hiển thị là n dòng .
Ví dụ : $more baitho.txt //hiển thị nội dung tập tin baitho.txt
$more mbox // xem tất cả thư lưu trong hộp thư
$more -4 grocery.txt
\documentstyle[12pt] {article}
\input{psfig}
\input{/home/a_s/pehng/Teach/Mat466/std.top}
More (0%)
Dòng thông báo More có nghĩa là bạn nhấn phím spacebar để xem
phần tiếp theo, nhấn phím q nếu muốn kết thúc .
Nếu bạn muốn bỏ qua n dòng đầu tiên thì bạn sử dụng cờ +n
Ví dụ : $more +40 grocery.txt
5.11. Tìm kiếm một chuỗi kí tự :
Cú pháp : grep <chuỗi cần tìm> <tên file>
Nếu tìm thấy thì trả về các dòng có chứa chuỗi cần tìm .
Ví dụ : grep New York // tìm từ " New" trong file " York"
grep "New York" // tìm chuỗi "New York" trong đầu vào
chuẩn ( standard input)
Linux Shell
Trang 8
Chuỗi kí tự hay biểu thức cần tìm có thể kết hợp với các kí tự đặc biệt sau
:
Kí tự Tác dụng
. Thay thế cho một kí tự .Ví dụ : b.d sẽ tương xứng với bod
and bad
* và [ ] Xem mục 6.
/ Tắt tác dụng của các kí tự đặc biệt .Ví dụ : /* sẽ tìm dấu * ,
// sẽ tìm dấu /
^ Ví dụ : ^704 sẽ tìm có mã vùng (bắt đầu ) là 704
{ } Ví dụ : g\{3,4} sẽ tìm bất cứ dòng nào có chứa ggg hoặc
gggg
Ví dụ : lệnh grep '408.[0-9]\{3\}.[0-9]\{4\}' sẽ tìm mọi số điện thoại có mã
vùng là 408; chẳng hạn như : 408-555-1212, 408.555.1212,
408.234.7890
5.12. Tìm kiếm một tập tin :
Cú pháp :
- Tìm theo tên : $find đườngdẫn -name têntậptin -print
- Tìm theo số i- node (i-num) của tập tin :
$find đườngdẫn -inum number -print
- Tìm theo tên người sở hữu :
$find đườngdẫn -user username -print
Để tránh các thông báo lỗi đưa ra màn hình , ta có thể đổi hướng đầu ra
chuẩn (standard error ) tới một tập tin rỗng ( / dev/null) :
$find / -name têntậptin -print 2>/dev/null
Ví dụ : $pwd
/home/user01
$find / -name ttyc2d1 -print 2>/dev/nul
/dev/ttyc2d1
5.13. Hiển thị hướng dẫn sử dụng lệnh:
Cú pháp : man <command>
<command> là tên của một lệnh hoặc của một tài nguyên cần gọi giúp đỡ
.
Ví dụ : man ls //đưa ra giúp đỡ của lệnh ls
Bạn có thể dùng cú pháp sau để hiển thị nội dung hướng dẫn sử dụng
lệnh :
Tên lệnh help
5.14. Nối các tập tin :
Cú pháp : cat <file1> <file2> <fileN> [ >filename]
Ví dụ : $cat baitho.txt vanban.doc //hiển thị nội dung cả 2 tập tin
$cat baitho.txt vanban.doc > tonghop.doc //kết nối nội dung
cả 2 tập tin vào tập tin tonghop.doc
5.15.Phản hồi lại các tham số đưa vào:
Cú pháp : echo <arg1> <arg2> <argN>
Ví dụ : $echo "hello"
hello
5.16. Hiển thị tên máy tính đang làm việc : Linux cất thông tin về tên máy
trong tập tin /etc/hots
Cú pháp: hostname
Linux Shell
Trang 9
Ví dụ : $hostname
Linux.edu
5.17. Nén một tập tin : Tên tập tin đã nén giống như tên ban đầu và kèm
theo đuôi .gz
Cú pháp : gzip <filename>
Vi dụ : gzip vban.txt //tên tập tin đã nén là:vban.txt.gz
5.18. Giải nén một tập tin :
Cú pháp: gunzip <filename>
5.19. Gọi hướng dẫn :
Cú pháp : man < command name >
Lệnh này hiển thị tài liệu Linux hoặc các trang giúp đỡ ( man pages) về
lệnh <command name>
5.20. Bí danh của lệnh: (alias)
Cú pháp : alias < tên lệnh mới > = < tên lệnh cũ >
Lệnh này cho phép bạn đặt một bí danh cho một lệnh đã có , kể cả những
lệnh phức tạp .
Ví dụ : alias help=man // bây giờ bạn có thể dùng lệnh help cp
hoặc man cp để hiển thị trang giúp đỡ về lệnh cp
alias timedir="ls -art"
Dấu ngoặc kép là cần thiết bởi nếu không có nó thì shell sẽ kết thúc lệnh
khi gặp dấu cách (space bar) và khi đó cờ -art sẽ mất tác dụng .
Chú ý : việc đặt bí danh từ dòng lệnh chỉ có hiệu quả trong phiên làm việc
hiện hành . Để có bí danh được kích hoạt mỗi khi đăng nhập (log on ) ,
hãy định nghĩa bí danh trong file .profile nếu bạn sử dụng Born shell ,
trong file .login nếu bạn sử dụng C shell.
5.21. clear : Xoá màn hình .
5.22. date : Hiển thị ngày tháng hiện hành của hệ thống .
5.23. time : Hiển thị thời gian hiện hành của hệ thống .
5.24. useradd : Thêm người dùng vào mạng .
5.25. passwd : Đặt lại password người sử dụng .
( Tiện ích mc trên Linux có giao diện làm việc giống như trình NC (Norton
Commander) . Để khởi động mc , từ dấu nhắc lệnh gõ :
$mc
6. Các kí tự đại diện dùng trong câu lệnh :
6.1. Dấu sao (*) : Đại diện cho một nhóm kí tự bất kì .
Ví dụ : cat sales* > allsales // kết nối mọi file có tên bắt đầu là
sales vào trong file có tên là allsales
ls *rep* // hiển thị mọi file mà tên của nó có chứa "rep"
ls .*rep* // hiển thị mọi file ẩn mà tên của nó có chứa
"rep"
6.2. Dấu chấm hỏi (?) : Đại diện cho một kí tự bất kì .
Ví dụ : lp ??x // in ra các file mà tên có 3 kí tự , bắt đầu bằng 2 kí
tự bất kì, còn kí tự cuối là x
6.3. Dấu ngoặc vuông ([ ]) : Chỉ phạm vi các kí tự được đại diện .
Ví dụ : ls job[123] // chỉ hiển thị các file :job1, job2, job3
ls [A-Z]* // chỉ hiển thị các file có tên bắt dầu bằng chữ in
hoa .
Linux Shell
Trang 10
ls [A-Z,a-z] // chỉ hiển thị các file có tên bắt dầu bằng
chữ cái.
7.Kết nối các tiến trình với các ống dẫn (pipes) :
Việc kết nối liên tiếp các lệnh bằng việc sử dụng ống dẫn ( kí hiệu là |
) làm cho đầu ra (output ) của chương trình hay lệnh ở phía trái của ống dẫn là
đầu vào (input ) của chương trình hay lệnh ở phía phải của ống .
Ví dụ : sort allsales | lp // để sort (lựa chọn, sắp xếp , phân loại ) file
tên là
allsales rồi in nó .
cat sales* | sort | lp // để in ra danh sách dữ liệu đã sắp xếp
(sort) trong các file có tên bắt đầu là sales .
8. Định hướng lại đầu vào và đầu ra : (Redirecting Input and Output )
Sử dụng dấu nhỏ hơn (< ) để định hướng lại đầu vào vào trong một
chương trình hay một lệnh từ một file thay vì một thiết bị đầu cuối
(terminal:bàn phím ) . Giả sử bạn muốn gởi một file tên là info bằng e-mail
đến một ai đó có địa chỉ là sarah . Thay vì bạn phải gõ lại nội dung của file cho
lệnh mail , bạn có thể sử dụng file info như là đầu vào của lệnh mail bằng cách
nhập vào dòng lệnh sau :
mail sarah < info
Sử dụng dấu lớn hơn (>) để định hướng lại đầu ra của một chương trình
hay một lệnh đến một file thay vì đến màn hình (terminal) (đầu ra được đặt
trong một file) . Lệnh date hiển thị thời gian và ngày tháng hiện tại ra màn hình
. Nếu bạn muốn lưu trữ thời gian và ngày tháng hiện tại vào một file tên là now
thì bạn nhập dòng lệnh sau :
date > now
Chú ý : nếu tên file bên phía phải của dấu > đã tồn tại thì nó sẽ ghi đè.
Hãy cẩn thận đừng để mất những thông tin hữu ích bởi cách này .
Nếu bạ muốn bổ sung hoặc kết nối thông tin vào một file đang tồn tại , hãy
dùng hai dấu lớn hơn (>>) .
Ví dụ : date >> report // để bổ sung ngày tháng hiện tại vào file tên là
report
sort < sales >> salesreport // dữ liệu trong file sales vừa được
đưa vào lệnh sort vừa được bổ sung vào file salesreport .
9. Biến môi trường của Shell :
Môi trường của Shell chứa một số biến được định nghĩa trước .
Lệnh set cho phép liệt kê danh sách các biến của môi trường .
Dưới đây là danh sách các biến môi trường thường có :
HOME chứa tên thư mục tiếp nhận
LOGNAME tên người sử dụng
PATH tên đường dẫn cho các lệnh
PS1 dấu nhắc 1
PS2 dấu nhắc 2
TERM kiểu của thiết bị cuối(terminal: bàn phím hoặc màn
hình)
FCEDIT EDITOR chương trình soạn thảo nhật kí
PRID số của tiến trình cha của Shell
PWD thư mục hiện hành
SHELL tên Shell đang dùng
Linux Shell
Trang 11
RANDOM số ngẫu nhiên
SECONDS thời gian làm việc tính theo giây
10. Biến thay thế :
Các biến Shell được lưu trữ như một chuỗi . Khi 2 biến được đặt
cùng nhau , các chuỗi riêng của chúng được nối lại ( các biến được dùng kèm
với dấu $ ở trước ).
Ví dụ : giả sử ta có 2 biến X=hello , Y=world
$echo $X$Y //cho kết quả là helloworld
$echo $X $Y // cũng cho kết quả là helloworld
$echo $XY // cho kết quả là helloY
11. Sự thay thế kết quả của lệnh :
Cú pháp : command1 parameter `command2`
Lệnh 2 (command2 ) được thi hành trước và kết quả của nó được xem
như là một tham số của lệnh 1 (command1 ).
Chú ý : dấu " ` " là dấu nháy ngược (backquote ) , phím backquote nằm
trên phím Tab trên bàn phím .
Ví dụ : $echo Today\`s date and time are `date` cho kết quả là :
Today`s date and time are Mon May 18 14:35:09 EST 1994
12. Tìm hiểu Nhóm lệnh (Command Group) và Shell dưới (Subshell) :
Nếu bạn muốn đặt một hay nhiều lệnh trên một dòng lệnh trước khi
nhấn Enter, bạn có thể sử dụng cú pháp dưới đây . Shell sẽ thi hành tuần tự
các lệnh .
command1; command2; command3
Ví dụ : $clear;ls // xoá màn hình và hiển thị thư mục
Nhóm lệnh : Nếu bạn muốn định hướng lại đầu vào và đầu ra các lệnh
như một nhóm , bạn có thể tạo một nhóm lệnh . Một nhóm lệnh được định
nghĩa như là một số lệnh được bao bởi dấu ngoặc móc ({ }) . Lệnh sau định
hướng lại đầu ra của cả 2 lệnh đến file tên là output-file :
{command-1;command-2} > output-file
Đầu ra của một nhóm lệnh có thể được "đặt ống "( can be piped) .Ví dụ :
{command-1;command-2} | command-3
Subshell : Khi bạn chạy một chuỗi các lệnh như một nhóm lệnh , các lệnh này
chạy trong Shell hiện tại . Nếu một trong những lệnh đó thay đổi môi trường
hoặc thay đổi thư mục thì khi nhóm lệnh chạy xong , những thay đổi đó sẽ bị ảnh
hưởng . Để tránh vấn đề này , nên chạy nhóm lệnh trong subshell .
Subshell là một bắt chước (clone) của Shell hiện tại , nhưng bởi vì các
tiến trình con không thể thay đổi môi trường của tiến trình cha , mọi lệnh chạy
trong một subshell không ảnh hưởng đến môi trường khi nhóm lệnh kết thúc .Để
chạy một nhóm lệnh trong subshell ,ta thay thế ngoặc móc bằng ngoặc đơn .Ví
dụ ở phần trên trở thành :
(command-1;command-2) | command-3
Chỉ command-3 chạy trong shell hiện hành , còn đầu ra của subshell
được đặt vào ống để thành đầu vào chuẩn của command-3.
13. Soạn thảo lệnh :
Soạn thảo lệnh có nghĩa là sau khi bạn đánh vào một lệnh và trước khi
nhấn Enter
Bạn có thể soạn hoặc thay đổi các phần của lệnh mà không phải đánh lại phần
lớn lệnh . Để biên soạn lệnh , bạn nhấn phím <Esc> để chuyển sang chế độ
Linux Shell
Trang 12
soạn thảo và sau đó sử dụng bất kì lệnh di chuyển dòng nào của trình soạn thảo
vi để sửa đổi lệnh . Bạn có thể sử dụng phím <backspace> , sử dụng các
lệnh khác của vi như x để xoá một kí tự , r để thay thế một kí tự
14. Xem lại lệnh và thi hành lại lệnh đã thực hiện : (Viewing
Command History)
Đặc trưng này cho phép bạn xem lại các lệnh đã nhập vào trước đó
và gọi lại chúng . Khi bạn kết hợp đặc trưng này với việc soạn thảo lệnh , bạn
có thể dễ dàng sửa lỗi trong những lệnh phức tạp và giải quyết hiệu quả với một
số công việc lặp lại .
Lịch sử lệnh (the history command) hiển thị danh sách các lệnh cũ mà
shell đã lưu lại . Các lệnh được đánh số . Chẳng hạn , để thi hành lệnh 10 , bạn
hãy nhập vào :! 10 . Bạn có thể dùng các phím mũi tên để gọi lại các lệnh trước
đó .
15. Làm việc với kịch bản Shell (Shell Script) :
Shell script là một tập hợp của một hoặc nhiều lệnh shell trong một file .
Để thi hành các lệnh đó , bạn đánh vào tên của file . Shell scipt đem lại những
thận lợi sau:
- bạn không phải đánh lại liên tiếp các lệnh .
- bạn xác định các bước để hoàn thành mục đích một lần .
- bạn đơn giản hoá các thao tác cho chính bạn và cho người khác .
Các bước tạo một Shell script :
1. Sử dụng một trình soạn thảo văn bản , chẳng hạn vi hoặc emacs , hãy
đặt các lệnh shell vào trong một file văn bản hoặc file ASCII rồi dặt cho file đó
một tên .
2. Để tạo một file thi hành , ta dùng lệnh sau : chmod +x <tên file>
3. Thử lệnh bằng cách gõ tên lệnh và nhấn Enter .
Bạn có thể kiểm tra một shell script và thấy mọi bước nó thực hiện bằng
cách nhập vào dòng lệnh sau :
sh -x script-name
Trong cú pháp trên , script-name là tên của script mà bạn đang xem xét .
Lệnh sh -x rất hữu ích khi bạn đang thử dò tìm lỗi của một script .
II- Phân quyền sử dụng - Bảo vệ tập tin, thư mục :
1. Phân quyền sử dụng :
Linux đưa ra 3 loại phân quyền sử dụng đối với người sử dụng :
- Đọc (chỉ cho phép đọc ); Ghi (cho phép thêm hoặc huỷ) ; Thực hiện
(thực hiện
các chương trình ứng dụng hoặc các tệp Shell script )
Linux cho phép bạn kiểm soát 3 loại quyền cơ bản này với 3 loại người sử
dụng :
- Chủ sở hữu : là người đầu tiên tạo ra tệp này .
- Nhóm người dùng : những người dùng Linux có thể tham gia vào một
nhóm làm việc nào đó hoặc không . Những người dùng trong cùng một nhóm
cùng tham gia vào một dự án đó .
-Những loại người dùng khác : là những người không thuộc 2 loại trên .
2. Mô tả người sử dụng :
Một người sử dụng được mô tả bằng các thông tin sau ;'
Linux Shell
Trang 13
- Username : tên người sử dụng
- password : mật khẩu ( nếu có)
- uid : số nhận dạng (user identify number )
- gid : số của nhóm (group identify number)
- comment : chú thích .
- thư mục chủ (Home directory)
- [ Tên chương trình cho chạy lúc bắt đầu phiên làm việc ]
Các thông tin trên được chứa trong tập tin / etc / passwd
3. Mô tả nhóm người sử dụng :
Một nhóm người sử dụng là tập hợp của một số người sử dụng có
thể dùng chung các tập tin của nhau . Một nhóm người sử dụng được mô tả
bằng các thông tin sau :
- groupname tên của nhóm
- password [mật khẩu]
- gid số của nhóm
- [danh sách những người khách ]
Các thông tin được chứa trong tập tin /etc/group
4. Bảo vệ các tập tin và thư mục :
4.1. Các quyền thâm nhập tập tin :
Khi tập tin được tạo lập , các thông tin sau đây đồng thời được ghi
lại :
- gid của nhóm người tạo tập tin
- uid của người tạo tập tin
- các quyền thâm nhập tập tin khác
Tập tin được bảo vệ bởi một tập hợp các bit định nghĩa quyền thâm nhập
:
r (quyền đọc ) , w ( quyền ghi ), x ( quyền thực thi ) , suid( set user-id) ,
sgid (set group-id)
đối với thư mục : r : quyền đọc nội dung thư mục
w: quyền tạo và xoá các tập tin trong thư mục
x : quyền qua lại (crossing) thư mục
4.2. Lệnh ls -l hoặc ls -lF
Lệnh này liệt kê danh sách các tập tin và các thuộc tính của chúng trong
một thư
mục , qua đó ta có thể phát hiện loại tập tin , cách bảo vệ , người sở hữu và
kích thước của chúng .
Ví dụ : $ls -l /bin
- rwxrwwxr -x 1 bin bin 16336 Mar 8 1998
cat
- rwxrwwxr -x 3 root bin 16124 Mar 8 1998
cp
trong đó : cột 1: loại tập tin và quyền thâm nhập . Dấu trừ '-' ở đầu có
nghĩa là tập tin thường . Dấu trừ '-' trong dãy bít có nghĩa không có quyền
truy cập tươn ứng bit đó . Để tiết kiệm chỗ người ta đặt bit n vào cùng
một nơi với bit x và kí hiệu :
- s nếu x tồn tại (bit s: set uid hoặc set gid khi chạy
tập tin )
Không có nhận xét nào:
Đăng nhận xét