Bảo mật hệ thống file

Đây là phần cuối cùng của loạt bài Hướng dẫn về Unix. Nội dung phần này sẽ trọng tâm vào phần bảo mật hệ thống file.

Bảo mật hệ thống file (quyền truy cập)

Trong thư mục unixstuff, đánh

% ls -l

Bạn sẽ thấy rất nhiều thông tin chi tiết về nội dung của thư mục, giống như ví dụ bên dưới.

Mỗi file (và thư mục) được có các quyền truy cập, có thể thấy được bằng cách đánh ls -l. ls –lg cho bạn có được các thông tin bổ sung về nhóm nào đang sở hữu file (beng95 trong ví dụ bên dưới)

-rwxrw-r– 1 ee51ab beng95 2450 Sept29 11:52 file1

Trong cột bên trái là một chuỗi gồm có 10 ký hiệu gồm có các ký hiệu như d, r, w, x, -, và một số ký tự s hoặc S. Nếu d xuât hiện thì nó sẽ nằm ở bên trái cùng của chuỗi, chỉ thị một thư mục: nếu không thì sẽ nằm ở ký hiệu bắt đầu của chuỗi.

9 ký hiệu còn lại thể hiện các điều khoản, hoặc quyền truy cập, được chia thành ba nhóm.

• Nhóm bên trái trong 3 nhóm tiếp theo là các điều khoản về file đối với người dùng sử hữu file hoặc thư mục này (ee51ab trong ví dụ ở trên)

• Nhóm ở giữa là các điều khoản cho nhóm người có quyền đối với các file đó (eebeng95 trong ví dụ trên)

• Bên phải là nhóm cho cho phép các điều khoản đối với tất cả các thành phần còn lại.

Các ký hiệu r, w,… có nghĩa khác nhau đôi chút phụ thuộc vào chúng được sử dụng cho một file hay một thư mục.

Các quyền truy cập file

• r (hoặc -), chỉ thị điều khoản đọc và copy một file.
• w (hoặc -), chỉ thị quyền ghi, thay đổi một file
• x (hoặc -), chỉ thị điều khoản thực thi, để thực thi một file ở một nơi nào đó thích hợp.

Các điều khoản thư mục

• r cho phép người dùng liệt kê các file trong thư mục;
• w nghĩa rằng người dùng có thể xóa các file từ thự mục hoặc xóa các file trong nó;
• X có nghĩa quyền truy cập các file trong thư mục. Điều này ngụ ý rằng bạn có thể đọc các file trong thư mục được cung cấp mà bạn có quyền đọc các file này.

Vì vậy, để đọc một file, bạn phải thực thi điều khoản trên thư mục có file đó cũng như thư mục con nằm trong nó

Một số ví dụ

-rwxrwxrwx: Một file mọi người đều có thể đọc, ghi và thực thi (và cả xóa).
-rw——-: Một file chỉ có người tạo mới có thể đọc và ghi, còn lại không ai có thể đọc, ghi và không ai có quyền thực thi (ví dụ như file mailbox)

Thay đổi các quyền truy nhập

chmod (thay đổi chế độ một file)

Chỉ có chủ sở hữu của một file nào đó với có thể sử dụng chmod để thay đổi các điều khoản cho một file. Các tùy chọn của chmod được cho trong bảng dưới đây:

Ký hiệu Ý nghĩa
u Người dùng
g Nhóm
o Thành phần còn lại
a Tất cả
r Đọc
w Ghi (và xóa)
x Thực thi (và truy cập thư mục)
+ Bổ sung thêm điều khoản
Bỏ điều khoản

Ví dụ, để remove các điều khoản đọc, ghi và thực thi trên biglist cho nhóm và các thành phần còn lại, đánh

% chmod go-rwx biglist

Lệnh này sẽ để lại các điều khoản khác không bị ảnh hưởng

Để trao các điều khoản đọc và ghi trên file biglist đến tất cả

% chmod a+rw biglist

Bài tập 5a

Thực hiện thay đổi các điều khoản trên file science.txt và trên thư mục backups

Sử dụng ls -l để kiểm tra các điều khoản đã được thay đổi

Các Process và các job

Một quá trình (process) là một chương trình thực thi được nhận dạng bởi một PID duy nhất (bộ nhận dạng process). Để xem các thông tin về các process của bạn cùng với PID của chúng và trạng thái, đánh

% ps

Một process có thể nằm trong foreground, trong background, hoặc được tạm dừng. Nhìn chung, tiện ích sẽ không trả về nhắc lệnh UNIX cho tới khi process hiện hành đã kết thúc việc thực thi.

Một số process tốn khá nhiều thời gian để chạy và giữ đến cuối cùng. Việc Background một process dài có hiệu lực ở chỗ nhắc lệnh UNIX được trả về ngay lập tức, các nhiệm vụ khác có thể được thực hiện trong khi quá trình gốc vẫn tiếp tục thực thi.

Chạy các quá trình background

Để background một quá trình, đánh & vào cuối mỗi dòng lệnh. Ví dụ, lệnh sleep sẽ đợi một số giây đã nhận trước khi tiếp tục. Đánh

% sleep 10

Lệnh này sẽ đơi khoảng 10 giây trước khi trả về nhắc lệnh %. Cho tới khi nhắc lệnh được trả về, bạn không thể thực hiện được gì ngoài việc ngồi đợi.

Để chạy sleep trong background, đánh

% sleep 10 &
[1] 6259

& sẽ chạy job trong background và trả thẳng về nhắc lệnh, cho phép bạn thực hiện chạy các chương trình khác trong khi đợi.

Dòng đầu tiên trong ví dụ trên được đánh vào bởi người dùng; dòng tiếp theo, chỉ thị số hiệu job và PID, được trả về bởi máy. Người dùng được thông báo số hiệu job mới (đặt từ số 1) được gửi kèm theo trong ngoặc vuông, cùng với PID và được thông báo khi quá trình background kết thúc.

Việc background rất hữu dụng cho các job cần nhiều thời gian để hoàn tất.

Background một quá trình foreground hiện hành

Tại nhắc lệnh, đánh

% sleep 1000

Bạn có thể tạm ngừng quá trình đang chạy trong foreground bằng cách đánh ^Z, nghĩa là giữ phím [Ctrl] và nhấn [z]. Sau đó đặt vào trong background, đánh

% bg

Lưu ý: không có chương trình background yêu cầu sự tương tác của người dùng

Liệt kê các quá trình background và tạm dừng

Khi một quá trình đang chạy, background hoặc tạm dừng thì nó sẽ được vào trong một danh sách cùng với số job. Để kiểm tra danh sách này, bạn hãy đánh

% jobs

Một ví dụ về danh sách job có thể được liệt kê như dưới đây

[1] Suspended sleep 1000
[2] Running netscape
[3] Running matlab

Để khởi động lại (foreground) các quá trình dừng, bạn hãy đánh

% fg %jobnumber

Ví dụ, để khởi động lại sleep 1000, đánh

% fg %1

Đánh fg không có số hiệu job sẽ foreground quá trình dừng cuối cùng

Thoát khỏi một quá trình

kill (terminate or signal a process)

Đôi khi bạn cũng cần thiết thoát khỏi một quá trình (cho ví dụ khi một chương trình đang thực thi là một vòng lặp vô hạn)

Để thoát khỏi một job đang chạy trong foreground, bạn hãy đánh ^C (control c). Ví dụ, chạy

% sleep 100
^C

Để thoát khỏi một quá trình background hoặc một quá trình tạm dừng, hãy đánh

% kill %jobnumber

Ví dụ, chạy

% sleep 100 &
% jobs

Nếu job có số hiệu là 4, đánh

% kill %4

Để kiểm tra xem lệnh có làm việc hay không, hãy kiểm tra danh sách job một lần nữa để xem xem quá trình đã được remove chưa.

ps (process status)

Ngoài ra các quá trình còn có thể được thoát nhờ việc tìm các số hiệu quá trình của chúng (PID) và sử dụng thoát khỏi số hiệu này (PID_number)

% sleep 1000 &
% ps

PID TT S TIME COMMAND
20077 pts/5 S 0:05 sleep 1000
21563 pts/5 T 0:00 netscape
21873 pts/5 S 0:25 nedit

Để thoát khỏi quá trình sleep 1000, đánh

% kill 20077

Sau đó đó đánh tiếp ps để xem xem quá trình đã được remove khỏi danh sách hay chưa.

Nếu một quá trình từ chối và không thoát ra, sử dụng tùy chọn -9, nghĩa là đánh

% kill -9 20077

Lưu ý: Hoàn toàn không thể thoát khỏi các tiến trình khác của người dùng!!!

Tóm tắt

Lệnh Ý nghĩa
ls -lag Liệt kê các quyền truy cập cho tất cả các file
chmod [options] file Thay đổi các quyền truy cập cho file đã có tên
command & Chạy lện trong background
^C Thoát khỏi job đang chạy trong foreground
^Z Đình hoãn một job đang chạy trong foreground
bg Background một job đã được đình hoãn
jobs Liệt kê các job hiện hành
fg %1 Foreground job số 1
kill %1 Thoát khỏi job số 1
ps Liệt kê các quá trình hiện hành
kill 26152 Thoát khỏi quá trình số 26152

Văn Linh (Theo surrey.ac)

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: