Bài giảng Phát triển phần mềm mã nguồn mở: Linux user management cung cấp cho người học các kiến thức: Quản trị người dùng, thông tin về tài khoản, cơ sở dữ liệu người dùng, xóa/khóa/mở tài khoản, thay đổi mật khẩu, xem trạng thái mật khẩu,... Mời các bạn cùng tham khảo.
TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THƠNG BỘ MƠN MẠNG MÁY TÍNH & TRUYỀN THƠNG Linux User Management Trình bày: TS NGƠ BÁ HÙNG Email: nbhung@cit.ctu.edu.vn Quản trị người dùng Linux Quản trị người dùng • Cấp tài khoản để người dùng truy cập vào Linux server • Cấp quyền truy cập vào tài nguyên server • Là phần quan trọng vấn đế an tồn hệ thống • Nhất thiết phải sử dụng sách an tồn hiệu 12-2012 https://sites.google.com/site/nbhung Quản trị người dùng Linux root • Là tài khoản quản trị hệ thống mặc định Linux • có uid=0 • Mật xác lập lúc cài đặt hệ thống • Có tồn quyền hệ thống Linux • Dưới Ubuntu ● Mặc định vơ hiệu hóa (khơng xóa) ● Được thay cơng cụ sudo ● Có thể kích hoạt lại cấn thiết 12-2012 https://sites.google.com/site/nbhung Quản trị người dùng Linux Sudo • Là cơng cụ cho phép tài khoản gán quyền nâng cấp lên quyền quản trị hệ thơng cách tạm thời • Dựa mật tài khoản người dùng cấp quyền • Khơng phải mật tài khoản root • Dùng người dùng thuộc nhóm quản trị sudo (từ 12.04 sau) admin (trước 12.04) • Lưu ý: Các lệnh phần sau đề phải có từ sudo đứng trước 12-2012 https://sites.google.com/site/nbhung Quản trị người dùng Linux Thơng tin tài khoản • Lệnh cho biết tên tài khoản hành – $whoami nbhung • Lệnh xem user id groups user – $id user-name – Nếu khơng có user-name lấy login name người dùng • uid =1000: normal users https://sites.google.com/site/nbhung 12-2012 Quản trị người dùng Linux Thêm người dùng • sudo adduser user-name ● ● 12-2012 Tạo tài khoản tên user-name Tạo nhóm có tên user-name với tài khoản ● Tạo thư mục cá nhân /home/user-name ● Sao chép profile mặc định từ /etc/skel ● Nhập thông tin người dùng ● Nhập mật cho tài khoản https://sites.google.com/site/nbhung Quản trị người dùng Linux Cơ sỡ liệu người dùng • /etc/password: – Chứa thơng tin người dùng – Mỗi dòng cho tài khoản gồm trường ngăn cách dấu hai chấm (:) sau: username:password: uid:gid:comment:home:shell – Ví dụ: • root:x:0:0:root:/root:/bin/bash • nbhung:x:1000:1000:Ngo Ba Hung:/home/nbhung:/bin/bash • /etc/shadow: Chứa mật mã hóa https://sites.google.com/site/nbhung 12-2012 Quản trị người dùng Linux Thực hành • Tạo người dùng có ● username: user1, password: userone ● Nhập thông tin cho người theo ý bạn • Khảo sát thơng tin user1 /etc/passwd • Đánh lệnh logout để kết thúc phiên làm việc • Login trở lại với tài khoản user1 vừa tạo • Tạo số thư mục với lệnh mkdir; Dùng lệnh ls, cd để khảo sát thư mục cá nhân người dùng user1 • Login in trở lại với tài khoản nhà quản trị bạn 12-2012 https://sites.google.com/site/nbhung Quản trị người dùng Linux Xóa/Khóa/Mở tài khoản • sudo deluser user-name ● ● Xóa tài khoản nhóm có tên user-name Khơng xóa thư mục cá nhân tài khoản /home/user-name • Khóa tài khoản ● sudo passwd -l user-name • Mở khóa tài khoản ● sudo passwd -u user-name 12-2012 https://sites.google.com/site/nbhung Quản trị người dùng Linux Thực hành • Xóa người dùng user1 (vẫn giữ lại home) • Đánh lện ls /home để xem home user1 tồn hay khơng • Add lại người dùng user1 • Dùng lệnh su - user1 để đăng nhập người dùng user1, tùy chọn - để đưa home sau đăng nhập thành cơng • Đánh lệnh cd ~ để chuyển home user1 • Đánh lệnh pwd để xem đường dẫn đến home user1 12-2012 https://sites.google.com/site/nbhung 10 Quản trị người dùng Linux Thực hành • Tạo tài khoản user2 • Khóa người dùng user2 • Thử đăng nhập vào server tài khoản user2 ● Cho biết kết • Đăng nhập tài khoản nhà quản trị • Mở khóa cho user2 • Thử đăng nhập vào server tài khoản user2 ● Cho biết kết https://sites.google.com/site/nbhung 12-2012 11 Quản trị người dùng Linux Thực hành • Đăng nhập tài khoản nhà quản trị • Xóa tài khoản user2 với home user lênh – deluser remove-home user2 • Thử đăng nhập vào server tài khoản user2 ● Cho biết kết • Thư mục /home/user2 cịn tồn khơng? 12-2012 https://sites.google.com/site/nbhung 12 Quản trị người dùng Linux Thực hành • Đăng nhập với vai trị nhà quản trị • Tạo thư mục /backup • Tạo lại người dùng user2 • Đăng nhập với tài khoản user2 dùng vi để tạo tập tin với tên Readme.txt, nội dung tùy ý • Đăng nhập lại với tài khoản quản trị • Xóa người dùng user2, có backup home cho user2 – deluser remove-home backup backup-to /backup user2 • Kiểm tra nội dung thư mục /backup https://sites.google.com/site/nbhung 12-2012 13 Quản trị người dùng Linux Thực hành • Chuyển vào /backup • Giải nén tạp tin user2.tar.bz lệnh sau – sudo tar xvjf user2.tar.bz – Lệnh tạo thư mục /backup/home/user2 • Copy /backup/home/user2 vào /home – sudo cp -r /backup/home/user2 /home • Kiểm tra thư mục /home/user2 • Add lại người dùng user2 • Đăng nhập với user2 12-2012 https://sites.google.com/site/nbhung 14 Quản trị người dùng Linux Thay đổi mật • Nhà quản trị có quyền đặt lại (reset) mật cho tài khoản khác – $sudo passwd user-name Nhập lần mật • Mỗi người dùng tự đổi mật – $passwd Nhập lại mật cũ Nhập lần mật 12-2012 https://sites.google.com/site/nbhung 15 Quản trị người dùng Linux Thực hành • Đăng nhập vời tài khoản user1 • Đổi mật thành numberone • Đăng nhập lại tài khoản user1 • Đăng nhập với tài khoản quản trị • Đặt lại mật người dùng user1 thành anhmot • Đăng nhập lại tài khoản user1 12-2012 https://sites.google.com/site/nbhung 16 Quản trị người dùng Linux Đặt chiều dài tối thiểu mật • File cấu hình /etc/pam.d/common-password • Thay đổi dòng ● Password … sha512 min=8 https://sites.google.com/site/nbhung 12-2012 17 Quản trị người dùng Linux Thực hành • Đặt chiều dài tối thiểu cho mật • Đăng nhập vào tài khoản user1 • Đổi mật thành 123456 ● Cho biết kết • Đổi mật thành chuỗi lớn ký tự ● 12-2012 Cho biết kết https://sites.google.com/site/nbhung 18 Quản trị người dùng Linux Xem trạng thái mật • sudo chage -l user1 ● Last password change : Jul 23, 2010 ● Password expires : never ● Password inactive : never ● Account expires : never ● Minimum number of days between password change: ● Maximum number of days between password change: 99999 ● Number of days of warning before password expires :7 https://sites.google.com/site/nbhung 12-2012 19 Quản trị người dùng Linux Đặt thời hạn cho mật • Account hạn (E) ngày 12/31/2013 • Tuổi thọ (m) ngày • Tuổi thọ lâu (-M) 90 ngày • Khơng hoạt động (-I) ngày sau mật hạn • Cảnh báo trước (-W) 14 ngày trước mật hạn ● ● 12-2012 sudo chage -E 12/31/2013 -m -M 90 -I -W 14 username Tham số đặt tập tin /etc/login.defs https://sites.google.com/site/nbhung 20 Quản trị người dùng Linux Thực hành • Tạo nhóm có tên nhom1 • Add người dùng user1 vào nhom1 • Hiển thị danh sách nhóm user1 tham gia lệnh: id user1 • Cho biết nhóm người dùng user1 • Đăng nhập với người dùng user1, tạo thư mục dir1 • Đánh lệnh ls -ld dir1 để xem nhóm chủ sở hữu dir1 • Đánh lệnh chuyển nhóm tạm thời nhom1 • Tạo thư mục dir2, cho biết nhóm chủ sở hữu dir2 https://sites.google.com/site/nbhung 12-2012 27 Quản trị người dùng Linux Quyền hệ thống tập tin • Tất thành phần hệ thống tập tin tập tin • Có chủ thể có quyền tập tin ● Chủ sở hữu (owner) ● Thành viên thuộc nhóm chủ sở hữu (group) ● Những người cịn lại (other) • Có loại quyền: ● Đọc (Read), Ghi (Write), Thực thi (eXecute) • Owner rwx 12-2012 Group rwx Others rwx https://sites.google.com/site/nbhung 28 Quản trị người dùng Linux Quyền tập tin • Quyền read (r): Được quyền đọc liệu lưu tập tin • Quyền write (w): Được quyền thay đổi nội dung tập tin • Quyền thực thi (x): Được quyền thực thi tập tin chương trình 12-2012 https://sites.google.com/site/nbhung 29 Quản trị người dùng Linux Quyền thư mục • Quyền read (r): Được quyền liệt kê nội dung thư mục • Quyền write (w): Được quyền tạo, xóa, đổi tên tập tin hay thư mục chứa thư mục • Quyền thực thi (x): Được quyền ngang qua thư mục 12-2012 https://sites.google.com/site/nbhung 30 Quản trị người dùng Linux Liệt kê quyền • ls -l /home/nbhung drwxrwxr-x nbhung nbhung 4096 2009-11-24 15:45 Ubuntu One -rwxr-xr-x nbhung nbhung 7094 2011-01-03 03:23 untitled -rw-r r nbhung nbhung 973 2011-01-03 03:23 untitled.c drwxr-xr-x nbhung nbhung 4096 2010-03-11 16:28 untitled folder Nhóm chủ sở hữu Chủ sở hữu drwxrwxrwx Quyền người lại Quyền thành viên thuộc nhóm chủ sở hữu Quyền chủ sở hữu Là thư mục https://sites.google.com/site/nbhung 12-2012 31 Quản trị người dùng Linux Qui tắc áp dụng quyền • Nếu bạn chủ sở hữu tập tin ● Các quyền chủ sở hữu áp dụng • Ngược lại, bạn thành viên nhóm chủ sở hữu ● Các quyền nhóm chủ sở hữu áp dụng • Nếu bạn khơng thuộc trường hợp ● 12-2012 Nhóm quyền cho tất người áp dụng https://sites.google.com/site/nbhung 32 Quản trị người dùng Linux Thay đổi quyền tập tin • Được thực chủ sở hữu admin/root • Sử dụng lệnh chmod [ugoa][+=-][rwxX] a-file u: áp dụng lên quyền chủ sở hữu g: áp dụng lên quyền nhóm chủ sở hữu o: áp dụng lên quyền người lài a: áp dụng lên nhóm quyền u,g,o +: gán quyền; =: gán xác; -:bỏ quyền rwx: loại quyền đọc, viết, thực thi X: gán quyền x cho thư mục tập tin có quyền x https://sites.google.com/site/nbhung 33 12-2012 Quản trị người dùng Linux Một số ví dụ chmod • chmod a+x my-prog ● Bổ sung (+) quyền thực thi (x) tập tin my-prog cho tất người dùng (a) • chmod o-w my-data ● Loại bỏ (-) quyền ghi (w) tập tin my-data chủ sở hữu khơng thuộc nhóm chủ sở hữu • chmod go=rx my-prog ● 12-2012 Gán quyền đọc (r) thực thi (x) tập tin my-prog cho thành viên nhóm chủ sở hữu người khác https://sites.google.com/site/nbhung 34 Quản trị người dùng Linux Thực hành • Đăng nhập vào người dùng user1 • Tạo tập tin my-prog, có nội dung ● echo "Hello World ! " • Cho biết chủ sở hữu có quyền my-prog? ● • Thực thi my-prog ● /my-prog • Thêm quyền thực thi cho chủ sở hữu my-prog • Thực thi lại my-prog https://sites.google.com/site/nbhung 12-2012 35 Quản trị người dùng Linux Thực hành • Xóa quyền write chủ sở hữu tập tin my-prog – chmod u-w my-prog • Thêm dịng sau vào my-prog 12-2012 ● echo «I'm here» ● Cho biết kết https://sites.google.com/site/nbhung 36 Quản trị người dùng Linux Thực hành • Hãy gán quyền my-prog sau – Owner: read, write, execute – Group: read, execute – Others: read, execute • Đánh lệnh ls -l my-prog để xem quyền my-prog – -rwx,r-x,r-x https://sites.google.com/site/nbhung 12-2012 37 Quản trị người dùng Linux Thay đổi quyền thư mục • chmod -R g+rwX,o+rX my-dir ● ● ● 12-2012 Đệ qui cho tất thư mục hậu duệ Thêm quyền rwx cho nhóm chủ sở hữu quyền rx cho người khác cách đệ qui thư mục tập tin thực thi Đối với tập tin không thực thi: Thêm quyền rw cho nhóm chủ sở hữu quyền r cho người khác https://sites.google.com/site/nbhung 38 Quản trị người dùng Linux Quyền sticky thư mục • Thường gán cho thư mục cơng cộng, ví dụ /tmp ls -ld /tmp drwxrwxrwt 18 root root 8712192 2011-01-07 16:11 /tmp • Một tập tin nằm thư mục có quyền stick xóa chủ sở hữu admin/root • chmod +t public-dir ● Gán quyền sticky thư mục public-dir https://sites.google.com/site/nbhung 12-2012 39 Quản trị người dùng Linux Thực hành • Tạo tài khoản user2 • Đăng nhập vào user2, tạo tập tin /tmp/file2.txt; gán tất người dùng có quyền rw file2.txt • Đăng nhập vào user1, ● Tạo tập tin /tmp/file1.txt, gán tất người dùng có quyền rw file1.txt ● Đánh lệnh ls -l file*.txt để xem quyền file1 file2 ● Thử xóa tập tin /tmp/file2.txt • Đăng nhập vào user2 12-2012 ● Thử xóa file1.txt ● Thử xóa file2.txt https://sites.google.com/site/nbhung 40 Quản trị người dùng Linux Thực hành • Đăng nhập với tài khoản quản trị – Tạo thư mục /opt/publics – Gán tất người có tồn quyền publics – Gán quyền sticky publics • Đăng nhập vào user2, tạo thư mục /opt/publics/project2; gán tất người dùng có quyền rwx project2 • Đăng nhập vào user1, tạo tập tin /opt/publics/project2/file1.txt, gán tất người dùng có quyền rw file1.txt ● Thử xóa project2 • Đăng nhập vào user2: Thử xóa /opt/publics/project2/file1.txt https://sites.google.com/site/nbhung • Đăng nhập vào user1: Thử xóa Quản trị người dùng Linux /opt/publics/project2/file1.txt 12-2012 41 Quyền setuid setgid (1) • Vấn đề: – user-a sở hữu tập tin file-a chương trình prog-a – Chỉ có user-a có quyền write file-a – user-a thực thi prog-a, prog-a thể write lên file-a – user-b thực thi prog-a, prog-a khơng thể write lên file-a • Mong muốn – user-b thực thi prog-a với quyền user-a để thao tác lên file-a 12-2012 https://sites.google.com/site/nbhung 42 Quản trị người dùng Linux Quyền setuid setgid (2) • Quyền setuid: – Khi chương trình gán quyền này, thực thi (bởi người dùng nào) với tư cách thể chủ sở hữu thực thi (với tồn quyền chủ sở hữu chương trình) • Quyền setgid: Tương tự setuid – Khi chương trình gán quyền này, thực thi (bởi người dùng nào) với tư cách thể thành viên nhóm chủ sở hữu thực thi (với tồn quyền nhóm chủ sở hữu chương trình) 12-2012 https://sites.google.com/site/nbhung 43 Quản trị người dùng Linux Ví dụ setuid • $ls -l /etc/passwd -rw-r r root root 3022 Jan 21:34 /etc/passwd • $ls -l /usr/bin/passwd -rwsr-xr-x root root 41284 Sep 13 05:29 /usr/bin/passwd • Khi người dùng thực thi chương trình passwd, nhờ có quyền suid, chương trình passwd phép sửa đổi tập tin /etc/passwd thể người dùng root thực thi chương trình 12-2012 https://sites.google.com/site/nbhung 44 Quản trị người dùng Linux Gán quyền setuid lên tập tin • Quyền setuid dùng ký tự s nằm vị trí x owner – s = x+suid – S=suid • Gán quyền: – $chmod u+s prog-a • Lấy lại quyền – $chmod u-s prog-a • $ls -a prog-a – -rwsrwxr-x nbhung nbhung 7159 Aug 31 09:10 prog-a https://sites.google.com/site/nbhung 12-2012 45 Quản trị người dùng Linux Quyền setgid thư mục (1) • Gán cho thư mục chia sẻ nhóm người dùng • Dùng cho thư mục dự án • Tập tin/thư mục tin tạo thư mục có quyền sgid có nhóm chủ sở hữu với thư mục • Thư mục tạo thư mục có quyền setgid gán quyền setgid thư mục cha • Thể ký tự s vị trí x nhóm chủ sở hữu • Gán: $chmod g+s project • Loại bỏ: $chmod g-s project 12-2012 https://sites.google.com/site/nbhung 46 Quản trị người dùng Linux Quyền setgid thư mục (2) • Ví dụ – mkdir proj-a – chmod g+ws proj-a – ls -ld proj-a drwxrwsr-x nbhung develop 4096 Jan 15 16:29 proja – sudo usermod -a -G develop u1 https://sites.google.com/site/nbhung 12-2012 47 Quản trị người dùng Linux Quyền setgid thư mục (3) • Ví dụ – su – u1 – $ touch ~nbhung/tam/proj-a/test1.txt – $ mkdir ~nbhung/tam/proj-a/mydir – exit – ls proj-a drwxr-sr-x u1 develop 4096 Jan 15 16:29 mydir -rw-r r u1 develop Jan 15 16:27 test1.txt 12-2012 https://sites.google.com/site/nbhung 48 Quản trị người dùng Linux Thực hành • Tạo nhóm develop • Thêm người dùng quản trị (cms), user1, user2 vào nhóm develop • Đăng nhập với tài khoản quản trị – Tạo thư mục /opt/project-a – sudo chgrp develop /opt/project-a – Thêm nhóm quyền ghi setguid cho project-a – ls-a để xem quyền nhóm chủ sở hữu project-a • Lần lược đăng nhập vào user1 user2, tạo project-a tập tin tương ứng file1.txt file2.txt https://sites.google.com/site/nbhung 12-2012 49 Quản trị người dùng Linux Hiển thị quyền đặc biệt • Sử dụng lệnh ls -l • Setuid Setgid biểu thị ký tự s vị trí quyền thực thi chủ sở hữu nhóm chủ sở hữu • Quyền sticky thể ký tự t vị trí thực thi other • Nếu s t: Có quyền thực thi • Nếu S T: Khơng có quyền thực thi 12-2012 https://sites.google.com/site/nbhung 50 Quản trị người dùng Linux Thể quyền số r 0/1 user w 0/1 0-7 group r w 0/1 0/1 0-7 x 0/1 • rwxr-xr-x => 111101101 x 0/1 => r 0/1 Other w x 0/1 0/1 0-7 755 • chmod 755 my-prog.sh • ls -l myprog.sh -rwxr-xr-x nbhung nbhung 2011-01-10 11:07 my-prog.sh https://sites.google.com/site/nbhung 12-2012 51 Quản trị người dùng Linux Thiết lập quyền mặc định • Cho tập tin, thư mục tạo • Sử dụng lệnh umask XYZ ● XYZ – số tương đương rwxrwxrwx – Các quyền KHÔNG gán cho tập tin/thư mục tạo đặt lên 1; Quyền x không gán cho tập tin khơng thực thi • Ví dụ umask 002 ● (000 000 010 = - - -w-) Không muốn gán quyền ghi cho người khác • Thường đặt tập tin khởi động lúc đăng nhập mở terminal 12-2012 https://sites.google.com/site/nbhung 52 Quản trị người dùng Linux Thực hành • Hãy thiết đặt để tập tin/thư mục tạo có quyền sau: rwx r-x r-x ● umask 000 010 010 (022) • Tạo tập tin file-new.txt • Kiểm tra quyền file-new.txt có quyền rwx r-x r-x => • Tạo thư mục new-dir • Kiểm tra quyền new-dir có quyền rwx r-x r-x https://sites.google.com/site/nbhung 12-2012 53 Quản trị người dùng Linux An toàn cho hồ sơ người dùng • Hồ sơ (profile) mặc định chép từ /etc/skel • Ubuntu đặt home directory chế độ read/execute ● Thư mục nhân đọc người khác • Kiểm tra quyền thư mục cá nhân ● ls -ld /home/user-name • Khơng cho người khác đọc thư mục cá nhân ● sudo chmod 0750 /home/username • Sửa đổi/etc/adduser.conf ● 12-2012 DIR_MODE=0750 https://sites.google.com/site/nbhung 54 Quản trị người dùng Linux Thay đổi chủ sở hữu nhóm • Thay đổi chủ sở hữu ● chown new-owner file-name ● chown new-owner [-R] dir-name – Tùy chọn -R để thay đổi cách đệ qui thư mục • Thay đổi nhóm chủ sở hữu ● chgrp new-group file-name ● chgrp new-group [-R] dir-name – Tùy chọn -R để thay đổi cách đệ qui thư mục https://sites.google.com/site/nbhung 12-2012 55 Quản trị người dùng Linux Thực hành • Đăng nhập vào tài khoản quản trị ● Tạo thư mục /opt/user1 • Đăng nhập vào người dùng user1 ● Thử tạo tập tin thư mục /opt/user1 • Đăng nhập vào tài khoản quản trị ● Chuyển chủ sở hữu thư mục /opt/user1 sang người dùng user1 • Đăng nhập vào người dùng user1 ● 12-2012 Thử tạo tập tin thư mục /opt/user1 https://sites.google.com/site/nbhung 56 ... quyền write file-a – user- a thực thi prog-a, prog-a thể write lên file-a – user- b thực thi prog-a, prog-a khơng thể write lên file-a • Mong muốn – user- b thực thi prog-a với quyền user- a để thao tác... – usermod -g new-primary-group user- name • Thay đổi nhóm tạm thời – newgrp new-temp-primary-group • Trở lại nhóm ban đầu: – exit • Xác định người quản trị nhóm – gpasswd -A user- admin group-name... Quản trị người dùng Linux Thêm người dùng • sudo adduser user- name ● ● 1 2-2 012 Tạo tài khoản tên user- name Tạo nhóm có tên user- name với tài khoản ● Tạo thư mục cá nhân /home /user- name ● Sao chép