Bài giảng Hệ điều hành Unix/Linux - Bài 3: Quản trị hệ thống và người dùng - Đặng Ngọc Cường

pdf 50 trang phuongnguyen 5310
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành Unix/Linux - Bài 3: Quản trị hệ thống và người dùng - Đặng Ngọc Cường", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_he_dieu_hanh_unixlinux_bai_3_quan_tri_he_thong_va.pdf

Nội dung text: Bài giảng Hệ điều hành Unix/Linux - Bài 3: Quản trị hệ thống và người dùng - Đặng Ngọc Cường

  1. Qu ản tr ị hệ th ống và ng ười dùng ệ ề
  2. ậ ệ ố  Với Linux có hai l ựa ch ọn để tương t ác v ới h ệ th ống:  Tươ ng tác b ằng dòng l ệnh (command-line)  Tươ ng tác b ằng giao di ện đồ họa  Mỗi l ần đă ng nh ập vào s ử dụng h ệ th ống, Linux g ọi là phiên làm vi ệc (session).  Phiên làm vi ệc s ẽ kết thúc khi gõ l ệnh exit ho ặc logout hệ th ống. ệ ề
  3. ả ườ  Mỗi ng ười s ử dụng (user) trên h ệ th ống được mô tả qua các thông tin sau: 1. username : tên ng ười s ử dụng 2. password : m ật kh ẩu 3. uid : s ố nh ận d ạng ng ười dùng (user identify number) 4. gid : s ố của nhóm (group identify number ) 5. Comment (Full name) : chú thích 6. Th ư m ục ch ủ của tài kho ản (user home directory ) 7. Shell đăng nhập (ch ươ ng trình ch ạy lúc b ắt đầu phiên làm vi ệc) ệ ề
  4. ả  Trong quá trình cài đặt Linux, trình cài đặt s ẽ tạo ra một tài kho ản đặc bi ệt v ới tên là root cho h ệ th ống.  Tài kho ản root còn được g ọi là tài kho ản qu ản tr ị (admin) hay superuser có quy ền không gi ới h ạn.  Với user root s ẽ có toàn quy ền x ử lý h ệ th ống nh ư: tạo tài kho ản m ới, gi ới h ạn ho ặc c ấp quy ền cho từng tài kho ản, shutdown h ệ th ống, Li khuyên là không nên s dng tài kho n root nh p và làm vi c v i h th ng và ch nên dùng trong nh ng tr ưng h p th t c n thi t. ệ ề
  5. ả  Tài kho ản này được định ngh ĩa là tài kho ản có UserID là 0.  Chú ý:  Nếu đă ng nh ập v ới user th ường thì dấu nh ắc t ại shell là $  Nếu đă ng nh ập v ới super user ( root ) thì dấu nh ắc t ại shell là # ệ ề
  6. ậa  Các thông tin c ủa ng ười dùng trong h ệ th ống được ch ứa trong t ập tin /etc/passwd  Tập tin /etc/passwd được l ưu d ưới d ạng text. M ọi ng ười đều có th ể đọc được t ập tin này nh ưng ch ỉ có root m ới có quy ền thay đổi nó.  Ví dụ:  root:x:0:0:root:/root:/bin/bash  bin:x:1:1:bin:/bin:   mars:x:500:500:Sao hoa :/home/mars:/bin/bash ệ ề
  7. ậa  Mỗi user được l ưu trong m ột dòng g ồm 7 c ột.  Cột 1 : tên ng ười s ử dụng  Cột 2 : mã liên quan đến passwd. Linux lưu mã n ày trong t ập tin /etc/shadow ch ỉ có root m ới có quy ền đọc.  Cột 3:4 : user ID:group ID  Cột 5 : Tên đầy đủ của ng ười s ử dụng.  Cột 6: thư mục cá nhân  Cột 7 : chươ ng trình s ẽ ch ạy đầu tiên sau khi user login (thường là shell). ệ ề
  8. ậa  mars : x : 500 : 500 :Sao hoa :/home/mars:/bin/bash GroupID Home username userID directory Fullname shell Password code ệ ề
  9. ạ ộ ả ớ  Mở cửa s ổ Terminal và th ực hi ện các l ệnh:  useradd [username]  passwd [username]  Ví dụ:  [root@srv foo]# useradd jerry  [root@srv foo]# passwd jerry  Change password for user jerry.  New password:  Retype new password:  passwd: all authentication tokens update successfully ệ ề
  10. a ộ ả  Mở cửa s ổ Terminal và th ực hi ện các l ệnh:  userdel [username]  Ví dụ:  [root@srv foo]# userdel jerry  Ta c ũng có th ể xóa m ột user b ằng cách:  Xoá điểm nh ập t ươ ng ứng v ới ng ười dùng trong /etc/passwd và trong /etc/group .  Xoá các file mail và mail alias c ủa ng ười dùng  Xoá mọi cron và at  Xoá thư mục cá nhân c ủa user đó. ệ ề
  11. ả ườ  Nhóm ch ứa hai ho ặc nhi ều user có liên quan.  Một nhóm ng ười (group) s ử dụng được mô t ả bằng các thông tin sau:  groupname : tên c ủa nhóm  gid : s ố của nhóm (gid: group identify number)  users : Danh sách các tài kho ản user thu ộc nhóm  Các thông tin trên được ch ứa trong t ập tin /etc/group  Ví dụ:  daemon:x:2:root,bin,daemon ệ ề
  12. ậ  Xem n ội dung c ủa /etc/group  [root@srv foo]# cat /etc/group  root: x : 0 : root  bin : x : 1 : root, bin, daemon  tty : x : 5  kmem : x : 9  wheel : x : 10 : root  draft: x : 500 : foo, tom, jerry ệ ề
  13. ậ  Các dòng có định d ạng nh ư sau:  group name : password code : group ID : users  Ví dụ:  draft : x : 500 : foo, tom, jerry Group name GroupID List users Password code ệ ề
  14. ạ  Tạo nhóm m ới, s ử dụng l ệnh:  groupadd [groupname]  Ví dụ:  Tạo nhóm m ới: [root@srv foo]# groupadd star  Tạo user m ới thu ộc nhóm star: [root@srv foo]# useradd –g star mars [root@srv foo]# passwd mars  Xóa nhóm đã t ồn t ại, s ử dụng l ệnh  groupdel [ groupname ] ệ ề
  15. ụ ạ a [root@dnc ~]# groupadd K15TCD12 [root@dnc ~]# useradd longtb -g K15TCD12 [root@dnc ~]# passwd longtb Changing password for user longtb. New UNIX password: lBAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@dnc ~]# ệ ề
  16. ử ụ ụ ồ ọa  Vào System menu -> Administration -> Users and Groups , ch ọn tab ‘Users’ để tạo user m ới. ệ ề
  17. Qu ản lý ti ến trình ệ ề
  18. ệ ề ế  Ti ến trình (process) là một th ể hi ện c ủa m ột ch ươ ng trình đang th ực hi ện.  Các ti ến trình được t ổ ch ức theo d ạng cây:  Ti ến trình cha (parent)  ti ến trình con (child)  Mỗi ti ến trình có độ ưu tiên kết h ợp v ới nó.  Một user bình th ường ch ỉ có th ể gi ảm độ ưu tiên của m ột ti ến trình s ử dụng l ệnh nice ho ặc renice nhưng chỉ có root mới có quy ền tăng độ ưu tiên của ti ến trình ệ ề
  19. ạ ế  Có 5 ki ểu ti ến trình trên h ệ th ống Linux:  Daemon  Parent  Child  Orphan ( đơn độc)  Zombie ho ặc defunct  Có th ể chia ti ến trình thành 2 h ạng m ục:  Ti ến trình ti ền c ảnh (foreground)  Ti ến trình h ậu c ảnh (background) ệ ề
  20. ếa  Đa s ố các ch ươ ng trình server cho các d ịch v ụ mạng đều ch ạy theo ph ươ ng th ức deamon, như các d ịch v ụ: Mail, Web, DNS  Đây là các ch ươ ng trình sau khi được n ạp lên b ộ nh ớ, l ắng nghe các yêu c ầu t ừ các ti ến trình khách (client) trên m ột s ố cổng (port) xác định nào đó.  Tên các ch ươ ng trình daemon th ường k ết thúc bằng ký t ự “d” như named , xinetd ệ ề
  21. ế ậ ảa  Là ti ến trình ch ạy ng ầm trong h ệ th ống, không có giao di ện hi ển th ị trên màn hình.  Để th ực hi ện m ột l ệnh ch ạy “hậu c ảnh” từ dòng lệnh thêm d ấu & sau câu l ệnh.  Ví dụ: $ find / -name cool & [1] 4463  Các ch ươ ng trình ch ạy h ậu c ảnh v ẫn hi ển th ị kết qu ả ở ti ền c ảnh. Ta có th ể chuy ển h ướng hi ển th ị vào m ột t ập tin.  Ví dụ: $ Find / -name cool > output & ệ ề
  22. ộ ủa ế  Mỗi ti ến trình có một s ố định danh duy nh ất trong hệ th ống PID (Process ID)  Mỗi ti ến trình có một ch ủ sở hữu UID và nhóm s ở hữu GID xác định quy ền c ủa ti ến trình trong h ệ th ống.  Ngoài ra, ti ến trình có một s ố các thông tin khác nh ư: ng ữ cảnh ti ến trình, đoạn d ữ li ệu, vùng nh ớ stack, và không gian địa ch ỉ của ti ến trình, ệ ề
  23. ể ị ế  Cú pháp: ps [option]  Trong đó: option có th ể là:  -e: xem thông tin v ề mỗi ti ến trình trên h ệ th ống.  -f: li ệt kê d ạng đầy đủ (li ệt kê theo d ạng các c ột).  -l: li ệt kê d ạng th ức dài.  Chú ý:  Một user bình th ường có th ể th ấy t ất c ả các ti ến trình, nh ưng ch ỉ có th ể điều khi ển được các ti ến trình c ủa mình t ạo ra.  Ch ỉ có root mới có quy ền điều khi ển t ất c ả các ti ến trình c ủa h ệ th ống Linux và của ng ười khác. ệ ề
  24. ể ị ế  Ý ngh ĩa c ủa các c ột:  UID : s ố UserID c ủa ch ủ sở hữu ti ến trình  PID : định danh c ủa ti ến trình  PPID : định danh c ủa ti ến trình cha  C: ch ỉ số sử dụng b ộ xử lý (CPU utilization for scheduling)  STIME : th ời điểm b ắt đầu ti ến trình  TTY : terminal điều khi ển ti ến trình  TIME : th ời gian tích l ũy th ực hi ện ti ến trình  COMMAND : tên l ệnh t ạo ra ti ến trình ệ ề
  25. ế ế  Tìm các ti ến trình theo m ẫu dùng l ệnh pgrep  Cú pháp: pgrep [option] [pattern]  Ví dụ: tìm các ti ến trình v ới tên trong đó có “mysql”  $ pgrep -lu mysql Ho ặc:  $ ps –lu | grep mysql ệ ề
  26. ểa ọa ộ ế  Để ki ểm tra ho ạt động c ủa các ti ến trình, đặc bi ệt là các thông tin v ề tài nguyên h ệ th ống c ũng nh ư vi ệc sử dụng tài nguyên c ủa m ỗi ti ến trình dùng top .  Cú pháp: top [-p pid]  Trong đó:  -p pid: xem thông tin v ề ti ến trình có định danh pid.  Ngoài ra, l ệnh top còn cho phép theo dõi xem có ti ến trình nào chi ếm d ụng quá nhi ều th ời gian CPU cũng nh ư truy c ập đĩa không. ệ ề
  27. ệ ệ ề
  28. ộư ủa ế  Độ ưu tiên của ti ến trình xác định quy ền s ử dụng CPU và ảnh h ưởng đến quá trình điều ph ối ti ến trình c ủa nhân Linux.  Khi gán độ ưu tiên cho một ti ến trình, Linux s ử dụng một s ố xác định g ọi là số nice (nice number ). Các số nice có giá tr ị trong kho ảng t ừ -20 (highest) đến +19 (lowest).  Các ti ến trình b ắt đầu b ởi m ột ng ười dùng th ường có giá tr ị nice là 0 .  Để thay đổi độ ưu tiên của ti ến trình dùng l ệnh nice ho ặc renice . ệ ề
  29. ệ  Cú pháp: nice [options] [command [arg] ]  Ý ngh ĩa: th ực hi ện l ệnh “command” với độ ưu tiên được xác định b ởi option.  Ví dụ:  $ nice –n 2 ls –l /root *Gán nice number là 2  $ nice 2 top *Gán nice number là -2 ệ ề
  30. ệ  Các ng ười dùng bình th ường ch ỉ có th ể điều ch ỉnh giá tr ị nice từ 0 đến 19 , trong khi đó root có th ể điều ch ỉnh giá tr ị nice từ -20 đến 19.  Nếu không có sự điều ch ỉnh giá tr ị, thì ti ến trình được gán m ột giá tr ị mặc định là 0.  Lệnh nice không có đối s ố sẽ hi ển th ị các độ ưu tiên được điều ph ối hi ện th ời.  Ví dụ:  $ nice -2 ls -a *Gán nice number là 2  # nice –n -2 ./baitap.sh *Gán nice number là -2  $ nice ệ ề
  31. ệ  Cú pháp: renice priority PID [[-g] group] [[-u] user]  Dùng để sửa đổi độ ưu tiên của các ti ến trình đang họat động trong h ệ th ống.  Ví dụ:  # renice -2 203 *Gán nice number là -2 cho ti ến trình có định danh là 203  # renice 5 –u hainv *Gán nice number là 5 cho t ất c ả ti ến trình b ắt đầu b ởi user hainv ệ ề
  32. ử ệ  Các l ỗi ch ươ ng trình liên quan đến ph ần c ứng (như: chia cho 0), ho ặc nh ấn Ctrl+C, có th ể gây ra các tín hi ệu.  Các qu ản tr ị hệ th ống th ường s ử dụng các tín hi ệu để thao tác trên các ti ến trình.  Có một s ố các tín hi ệu chu ẩn đã được định ngh ĩa trong Linux. Có th ể sử dụng l ệnh kill –l ho ặc man 7 signal để liên k ết t ất c ả các tín hi ệu được h ỗ tr ợ bởi hệ th ống. ệ ề
  33. ử ệ ế ế  Có một s ố tín hi ệu chu ẩn trong Linux:  Để gửi tín hi ệu đến ti ến trình dùng l ệnh kill và lệnh pkill . ệ ề
  34. ệ  Lệnh kill cho phép tác động tr ực ti ếp ho ặc làm k ết thúc ti ến trình l ệnh không mong mu ốn.  Cú pháp: kill [-signal]  Trong đó:  -signal : tín hi ệu c ần g ửi đến ti ến trình đang h ọat động  PID : định danh c ủa ti ến trình nh ận tín hi ệu.  Ví dụ:  # kill –SIGKILL 3532 ệ ề
  35. ệ  Cú pháp: pkill [-signal] [option]  Dùng để kết thúc m ột ti ến trình v ới tên được so kh ớp theo m ẫu.  Trong đó: Các giá tr ị của option có th ể là:  -u username : các ti ến trình thu ộc username.  -x : so kh ớp chính xác v ới m ẫu  Ví dụ:  #pkill -9 –u tom mysql *Ngh ĩa là, k ết thúc các ti ến trình có tên “mysql ” của user tom. ệ ề
  36. ậ ị ế  Để lập l ịch th ực hi ện các ti ến trình Linux s ử dụng ch ủ yếu hai l ệnh sau:  Lệnh at  Lệnh crontab ệ ề
  37. ệa  Cho phép l ập l ịch x ử lý m ột hay nhi ều câu l ệnh ch ạy m ột l ần vào m ột th ời điểm c ụ th ể nào đó.  Cú pháp: at [options]  Lệnh at đọc các câu l ệnh t ừ bàn phím ho ặc tập tin (v ới tùy ch ọn là –f) và xử lý chúng vào th ời điểm trên.  Kết qu ả ho ặc thông báo l ỗi của câu l ệnh được g ửi mail đến user. ệ ề
  38. ụ ệa  Ví dụ 1: Ch ạy ch ươ ng trình myprogram một l ần vào lúc 6:15 PM ngày mai:  $ at 6:15pm tomorrow at> myprogram at> Ctrl+D (nh ấn Ctrl và phím D)  Ví dụ 2: Ch ạy các câu l ệnh được li ệt kê trong t ập tin cmd.list vào lúc 9 p.m vào hai t ới:  $ at -f cmd.list 9pm + 2 days ệ ề
  39. ể ị ủya  Li ệt kê các công vi ệc (jobs) đã lập v ới at:  # at –l (là bí danh cho atq ) Ho ặc:  # atq 14 2003-10-31 12:00 a root  Hủy các công vi ệc đã l ập l ịch:  # at –d Ho ặc:  atrm ệ ề
  40. ụ ệ ề
  41. ệa  Đối v ới l ệnh at ch ỉ cho phép l ập l ịch th ực hi ện ti ến trình m ột l ần. Linux còn cho phép l ập k ế ho ạch có tính ch ất chu k ỳ thông qua ti ến trình crond và các tập tin crontab (hay còn g ọi là bảng cron) .  Ti ến trình crond được b ắt đầu lúc kh ởi động h ệ th ống, nó sẽ liên t ục ki ểm tra hàng đợi vào b ởi l ệnh at , và các t ập tin crontab xem có ti ến trình c ần ph ải th ực hi ện hay không.  Tất c ả các user đều có th ể đặt các ti ến trình s ẽ được cho phép th ực hi ện b ởi crond . ệ ề
  42. ệa  Lệnh crontab cho phép c ấu hình và lập l ịch công vi ệc trong b ảng cron.  Cú pháp: crontab [options] [-u user]  Trong đó: option có th ể là:  -l : li ệt kê n ội dung c ủa b ảng cron.  -e: s ửa đổi b ảng cron hi ện hành.  -r: xóa b ảng cron.  Mỗi user s ẽ có một b ảng cron trùng tên mình (username) n ằm t ại th ư m ục /var/spool/cron lưu tất cả các l ệnh c ần th ực hi ện theo chu k ỳ. ệ ề
  43. ử ụ ệa  Li ệt kê n ội dung b ảng cron dùng:  # crontab [-u user] –l  sửa đổi b ảng cron hi ện hành dùng:  # crontab [-u user] –e  Xóa b ảng cron dùng:  crontab [-u user] –r ệ ề
  44. ấ ậa  Mỗi dòng trong t ập tin crontab xác định m ột l ệnh, và thông tin c ần thi ết khi nào thì lệnh được ch ạy, có dạng nh ư sau:   Trong đó: Giá tr ị có th ể của các c ột là  minute : phút (0-59)  hour : gi ờ (0-23)  day : ngày (1-31)  month : tháng (1-12)  weekday : ngày tu ần (0-6, 0 là ch ủ nh ật) ệ ề
  45. ấ ậa  Các l ưu ý:  Các c ột cách nhau b ởi ký t ự Space ho ặc tab .  Sử dụng d ấu ph ẩy (,) để tách danh sách các giá tr ị trong m ột c ột.  Cột v ới d ấu sao “*” có ngh ĩa là có giá tr ị bất k ỳ  Dòng b ắt đầu v ới d ấu “#” là dòng chú thích và được bở qua b ởi ti ến trình crond . ệ ề
  46. ụ  Để xử lý chương tr ình myprogram hàng ngày vào lúc 6:15 a.m, s ử dụng m ột dòng trong t ập tin crontab nh ư sau:  15 6 * * * myprogram  Để xử lý vào lúc 6:15 và18:15 vào các ngày 1 st và 15 th hàng tháng, s ử dụng:  15 6,18 1,15 * * myprogram  User có th ể sử dụng crontab để hi ển th ị câu nh ắc nh ở thông thường ho ặc backup d ữ li ệu:  0 8 29 2 * echo “Happy Birthday”  11 1 * * 0 /home/bin/full.backup ệ ề
  47. ả ị a a  Ki ểm soát và cấu hình thông qua các t ập tin c ấu hình được l ưu gi ữ trong /etc  at.allow : Danh sách các users được phép s ử dụng at  at.deny : Danh sách các users b ị cấm s ử dụng at (ch ỉ được s ử dụng n ếu không t ồn t ại at.allow )  cron.allow : Danh sách các users được phép s ử dụng cron  cron.deny: Danh sách các users b ị cấm s ử dụng cron  crontab : b ảng cron (cron table) h ệ th ống. ệ ề
  48. ả ị a a  Các t ập tin này ch ỉ đơn giản li ệt kê các tài kho ản ng ười dùng (username).  Nếu t ập tin allow tồn t ại thì ch ỉ nh ững users được li ệt kê trong t ập tin allow có th ể sử dụng d ịch v ụ. Nếu t ập tin allow không t ồn t ại nh ưng t ập tin deny có, thì ch ỉ nh ững users không được li ệt kê trong t ập tin deny có th ể sử dụng d ịch v ụ.  Đối v ới cron , n ếu không có tập tin nào t ồn t ại thì tất cả các users đều có th ể truy xu ất cron.  Đối v ới at , n ếu không có tập tin nào t ồn t ại thì, ch ỉ có root được truy xu ất at. ệ ề
  49. ả ị a a  Tất c ả crontabs được l ưu trong th ư m ục cron spool là /var/spool/cron  Tất c ả các công vi ệc at được l ưu trong th ư m ục cron spool là /var/spool/at  Không nên s ửa đổi các t ập tin trong các th ư m ục spool.  Sử dụng ti ện ích at và crontab để th ực hi ện thay đổi chúng. ệ ề
  50. ạ  Qu ản tr ị người dùng  Qu ản tr ị ti ến trình Thanks you ! ệ ề