Chương 4
Quản trị tài khoản và nhóm người dùng
1
Nội dung
1. Quản trị tài khoản và nhóm người dùng 2. Quản trị chủ sở hữu và quyền trên file 3. Sử dụng RootSudo
2
I. Quản trị tài khoản và nhóm người dùng
Các khái niệm. Quản trị tài khoản. Quản trị nhóm người dùng. Các tập tin liên quan.
3
Các khái niệm
Tài khoản :
Mỗi tài khoản có duy nhất một tên và id (UID). Mỗi tài khoản có một password Mỗi tài khoản thuộc về ít nhất một nhóm (gọi là primary hay default group). Các nhóm khác primary group gọi là secondary groups.
Mỗi tài khoản có thể có một thư mục cá nhân trùng
với tên tài khoản (thường nằm trong /home) - là nơi tài khoản lưu dữ liệu cá nhân.
4
Các khái niệm
Tài khoản :
Các thông số khởi tạo cho tài khoản mặc định được
khai báo trong các file : /etc/default/useradd, /etc/login.defs Login directory Shell User’s enviroment …
Thông tin môi trường làm việc người dùng - /etc/skel/
Thư mục /etc/skel/ chứa các tập tin cấu hình môi trường làm
việc của người dùng.
Các file cấu hình này sẽ được chép vào thư mục cá nhân của
tài khoản.
5
Các khái niệm
Thông tin tài khoản được lưu tại local, trong
các file /etc/passwd và /etc/shadow Thông tin tài khoản có thể được quản lý tập trung
thông qua dịch vụ NIS hay LDAP.
6
Các khái niệm
Tài khoản root – tài khoản Superuser
Tài khoản có quyền cao nhất trên hệ thống Đảm nhiệm việc quản trị và bảo trì hệ thống Sử dụng: không login trực tiếp
Lệnh sudo
7
Các khái niệm
Nhóm người dùng :
Mỗi nhóm có duy nhất một tên và id (GID). Mỗi nhóm có thể chứa một hay nhiều thành viên. Thông tin về nhóm lưu tại local trong file
/etc/group
8
Các lệnh quản trị người dùng
Tạo tài khoản người dùng Thay đổi thông số (thuộc tính) của tài khoản Xem thông tin về tài khoản Tạm khóa tài khoản Xóa tài khoản.
9
Các lệnh quản trị người dùng Tạo tài khoản
Lệnh useradd :
useradd [options] login
Một số options
-c comment
Mô tả thông tin tài khoản người dùng
Gán User ID
-g primary_group
Tên primary group hoặc GID
-G group1[,group2,…]
Các suplementary groups của tài khoản
-u uid useradd user1 useradd -g accnt user2
10
useradd user2 //p grp la user2 useradd -g accnt –G sv,frt user2 useradd -u 1500 –e “2013-05-30” user3
11
Các lệnh quản trị người dùng Quản lý/thay đổi mật khẩu
Lệnh passwd :
passwd [options] [login]
Một số options
Hiển thị tình trạng của tài khoản
Xóa bỏ mật khẩu của tài khoản người dùng (*)
Khóa tài khoản người dùng
Mở khóa tài khoản người dùng
-S -d -l -u
• useradd user1 passwd user1
12
Các lệnh quản trị người dùng Thay đổi thuộc tính Lệnh usermod :
usermod [options] login
Một số options
-l loginName
Thay đổi tên tài khoản
Thay đổi nhóm primary
Thay đổi danh sách nhóm phụ
Thay đổi thư mục cá nhân của tài khoản
Khóa tài khoản
Mở khóa tài khoản
-g initial_group -G group1[,…] -d home_dir -L -U usermod -c “CNPM” –g studs user1
13
Các lệnh quản trị người dùng Xóa tài khoản Lệnh userdel :
userdel [-r] login
//Xóa tài khoản, không xóa data của tài khoản userdel user1 //Xóa tài khoản và xóa data của tài khoản (thư mục cá
nhân và mail spool)
userdel -r user2
14
Các lệnh quản trị người dùng Xem thông tin về tài khoản
Sử dụng các lệnh : id [username] groups [username] Xem trực tiếp file /etc/passwd và /etc/shadow
15
Các lệnh quản trị nhóm người dùng
Tạo nhóm Thay đổi thuộc tính nhóm Xóa nhóm Xem thông tin
16
Các lệnh quản trị nhóm người dùng Tạo nhóm Lệnh groupadd :
groupadd [options] group
// tạo group students với mã nhóm (gid) mặc định groupadd students // tạo group teachers với gid tùy chọn groupadd –g 2000 teachers
17
Các lệnh quản trị nhóm người dùng Xem/Thay đổi thuộc tính Lệnh groupmod :
groupmod [options] group
//Thay đổi tên nhóm groupmod –n studs students //Thay đổi mã nhóm (gid) groupmod –g 2001 teachers
Xem file /etc/group để có thông tin về nhóm
18
Các lệnh quản trị nhóm người dùng Xóa nhóm Lệnh groupdel :
groupdel group
// xóa nhóm students
groupdel students
19
Các tập tin liên quan
Tập tin /etc/passwd và /etc/shadow Tập tin /etc/group Tập tin /etc/login.defs Tập tin /etc/default/useradd
20
Các tập tin liên quan Tập tin /etc/passwd
username:password:uid:gid:gecos:homedir:shell
• Trong đó: – username – password – uid – gid – gecos – homedir – shell
tên tài khoản Mật khẩu đã được mã hóa. User ID. Group ID. Thông tin thêm về user (ghi chú). Thư mục home của user. Shell đăng nhập của người dùng.
• Ví dụ :
root:x:0:0:root::/bin/bash
21
Các tập tin liên quan Tập tin /etc/shadow
username:passwd:d1:d2:d3:d4:d5:d6:reserved
• Trong đó
• Lưu ý : các giá trị số ngày tính theo mốc từ 1/1/1970
– username Tương ứng username trong /etc/passwd – passwd Mật khẩu đã được mã hoá – d1 Số ngày kể từ lần cuối thay đổi mật khẩu – d2 Số ngày trước khi có thể thay đổi mật khẩu – d3 Số ngày mật khẩu có giá trị – d4 Số ngày cảnh báo user trước khi mật khẩu hết hạn – d5 Số ngày sau khi mật khẩu hết hạn tài khoản sẽ bị khoá – d6 Số ngày kể từ khi tài khoản bị khoá.
22
Các tập tin liên quan Tập tin /etc/shadow (tt) • Tài khoản bị khóa nếu có ký tự ! đứng trước passwd. • Tài khoản không có mật khẩu và không thể đăng nhập hệ
thống nếu có giá trị ! ở trường passwd.
• Tài khoản không có mật khẩu nếu có giá trị trống ở trường
passwd.
• Tài khoản hệ thống , không thể đăng nhập hệ thống nếu có giá
trị * ở trường passwd
• Ví dụ :
root:$1$dxtC0Unf$2SCguIhTlrcnkSH5tjw0s/:12148:0:99999:7:::
– – daemon:*:12148:0:99999:7::: – adm:*:12148:0:99999:7::: – nobody:*:12148:0:99999:7::: – xfs:!:12148:0:99999:7:::
23
Các tập tin liên quan Tập tin /etc/group
groupname:password:gid:members
• Trong đó :
– groupname – password – gid – members
tên group mật khẩu (tùy chọn) group id danh sách thành viên (đây là secondary group của thành viên)
• Ví dụ :
root:x:0: bin:x:1:bin,daemon students:x:500:user1,user2
24
Các tập tin liên quan Tập tin /etc/login.defs
• Cú pháp :
trường_thông_tin Giá_trị
• Ví dụ :
• MAIL_DIR • PASS_MAX_DAYS • PASS_MIN_DAYS • PASS_MIN_LEN • PASS_WARN_AGE • UID_MIN • UID_MAX • GID_MIN • GID_MAX • CREATE_HOME
/var/spool/mail 99999 0 5 7 500 60000 500 60000 yes
25
Các tập tin liên quan Tập tin /etc/default/useradd • Cú pháp :
trường_thông_tin=giá_trị
• Ví dụ :
GROUP=100 Nhóm mặc định HOME=/home Thư mục chứa thư mục cá nhân INACTIVE=-1 Số ngày tối đa được thay đổi mật
khẩu sau khi mật khẩu hết hạn sử dụng.
EXPIRE= Ngày hết hạn sử dụng tài khoản SHELL=/bin/bash Shell mặc định của tài khoản SKEL=/etc/skel Thư mục chứa thông tin môi trường
làm việc
26
II.Quản trị chủ sở hữu và quyền
Quản trị chủ sở hữu (ownership)
Xem thông tin Thay đổi chủ sở hữu
Quản trị quyền truy cập file/thư mục
(permissions) Thay đổi quyền truy cập Quyền default Các quyền đặc biệt
27
Các khái niệm
Chủ sở hữu : là tài khoản tạo ra file/thư mục
Nhóm sở hữu : là nhóm các user cùng có quyền
nhất định trên file/thư mục. Khi file/thư mục được tạo, nhóm sở hữu là primary
group của tài khoản tạo file/thư mục
Sử dụng lệnh ls –l để xem thông tin về sở hữu
và quyền trên file/thư mục
28
Các khái niệm
Quyền truy cập file/thư mục gồm các quyền :
read, write, execute (đọc, ghi, thực thi) Quyền read, write
Đối với file : có quyền đọc và chỉnh sửa dữ liệu trong file. Đối với thư mục : có quyền đọc và thay đổi nội dung thư
mục.
Quyền execute
Đối với file script/binary : có quyền thực thi Đối với thư mục : có quyền vào thư mục bằng lệnh cd Có 3 quyền đặc biệt có thể áp dụng cho file/thư
mục : SUID, SGID, Sticky bit
29
Các khái niệm
Bộ quyền của file/thư mục là các quyền mà 3 đối tượng (chủ sở hữu, nhóm sở hữu và các user khác) có trên file/thư mục đó
Bộ quyền default được gán đặt tự động khi file/thư mục
được tạo
Có thể thay đổi chủ sở hữu và nhóm sở hữu của file/thư
mục, bằng lệnh chown, chgrp
Có thể thay đổi bộ quyền trên file/thư mục, bằng lệnh
chmod
30
Các khái niệm
ls –l /home/ti total 4 drwxr-xr-x 2 ti users 4096 Mar 27 09:36 bin drwxr-xr-x 2 ti users 4096 Mar 27 09:36 public_html -rw-r--r-- 1 ti users 4096 Mar 27 09:36 .bashrc -rw-r—-r-- 1 ti users 19 Apr 06 11:29 vd.txt
owner group
Owner’s permissions
group’s permissions
other’s permissions
31
Các lệnh quản trị Xem thông tin về sở hữu, quyền
ls –l /tmp/vd.txt ls –l /tmp
Xem thông tin file: /tmp/vd.txt hoặc Xem thông tin thư mục: /tmp hoặc
ls –ld /tmp ls –l /
32
Các lệnh quản trị Thay đổi sở hữu (owner và group) Lệnh chown và chgrp chown [options] new_owner[:new_group] file … chgrp [options] new_group file … //thay đổi chủ sở hữu chown sv vd.txt //thay đổi chủ sở hữu và nhóm sở hữu chown sv:studs vd.txt //thay đổi nhóm sở hữu chown :studs vd.txt studs vd.txt chgrp //thay đổi chủ sở hữu tất cả các file trong nhánh cây thư mục
chown -R sv:studs /tmp chgrp -R studs /tmp
33
Các lệnh quản trị Thay đổi quyền truy cập Lệnh chmod chmod [options] mode[,mode] file …
Biểu diễn mode, bằng 2 cách (1) Sử dụng các ký tự (2) Sử dụng số
quyền read (r) quyền write (w) quyền execute (x) Không có quyền (-)
Không có quyền
4 2 1 0
34
u user (owner) g group o others a tất cả (u, g và o) + thêm quyền - loại bỏ quyền = gán quyền r quyền read w quyền write x quyền execute -
Các lệnh quản trị Thay đổi quyền truy cập - một số ví dụ
Vd1 : thay đổi bộ quyền của file contacts.odt thành rw–rw–r– –
chmod u=rw,g=rw,o=r contacts.odt chmod 664 contacts.odt
chmod g–w contacts.odt chmod 644 contacts.odt
Vd2 : tắt quyền write của Group Vd3: thay đổi bộ quyền cho tất cả có quyền read chmod a=r contacts.odt chmod 444 contacts.odt
35
Các lệnh quản trị Thay đổi quyền truy cập - một số ví dụ
Vd4 : loại quyền x với mọi user chmod -x *.php
Vd5 : thay đổi bộ quyền của thư mục và tất cả các file/thư
mục con trong nhánh cây thư mục chmod -R ug+rw lecture
Vd6 : thay đổi bộ quyền của owner và group chmod u=rwx,ug=r desktop.jpg
36
Các lệnh quản trị Thay đổi quyền truy cập - một số ví dụ
Vd7: Thay đổi bộ quyền trên thư mục mydir
thành bộ quyền mới là rwx r-x r-x
chmod u=rwx,g=rx,o=rx mydir chmod a=rx,u+w mydir chmod 755 mydir • …
37
Các lệnh quản trị Thay đổi bộ quyền default Sử dụng lệnh umask (mặt nạ) để thay đổi bộ
quyền default
//xem umask hiện tại umask //thay đổi bộ quyền default umask 0022 Thay đổi bộ quyền default bằng lệnh umask chỉ
có giá trị trong phiên làm việc hiện hành Đưa lệnh umask vào file cấu hình để thiết lập bộ quyền default được duy trì cho mọi phiên làm việc sau đó. Vd : file /etc/profile
38
Các lệnh quản trị Các quyền đặc biệt Set UserID (SUID) : chỉ áp dụng cho các file
binary
chmod u+s /path/to/command/binary
Set GroupID (SGID) : áp dụng cho các file
binary và các thư mục
chmod g+s /path/to/command/binary chmod g+s /path/to/directory
Sticky Bit : chỉ áp dụng cho các thư mục
chmod o+t /path/to/directory
39
Các lệnh quản trị Các quyền đặc biệt Công dụng :
SUID : Khi bit SUID được gán cho lệnh, lệnh sẽ luôn luôn thực thi với User ID của user tạo ra lệnh thay vì của user gọi thực thi lệnh. Ví dụ : lệnh passwd
SGID : Khi bit SGID được gán cho lệnh, lệnh sẽ chạy với Group ID của group là chủ nhân của lệnh thay vì là GID của user gọi thực thi lệnh. Ví dụ : lệnh write
Khi bit SGID được gán cho thư mục, tất cả các file tạo đặt trong thư mục sẽ có cùng group owner là group owner của thư mục
Sticky Bit : Các file được tạo trong thư mục có Sticky Bit sẽ chỉ được xóa bởi root hoặc user là chủ nhân tạo ra file _ các user khác không thể xóa file, thậm chí kể cả khi user có quyền write trên thư mục cha. Ví dụ : thư mục /tmp 40
III. Sử dụng RootSudo Sử dụng su
Sử dụng su để chuyển sang dùng tài khoản khác
trong cùng một login session
Ví dụ : tài khoản sv có thể chuyển sang dùng quyền của
//hoặc su
tài khoản khác bằng lệnh su su root su -c “cat /etc/shadow” su user1 su -c “mkdir /home/user1/test” user1
Để thoát và quay lại tài khoản trước đó : dùng lệnh
exit
41
Sử dụng RootSudo Sử dụng sudo :
Cho phép một user chạy các lệnh/chương trình
bằng quyền của root (or user khác) mà không cần biết password của root (or user khác)
Sử dụng sudo : sudo chown bob:bob /home/bob/* sudo /usr/sbin/useradd -m john Thay đổi cấu hình sudo trong file /etc/sudoers :
sử dụng visudo
User_Alias Host_Alias = (Runas_Alias) Cmnd_Alias
42
Sử dụng RootSudo Ví dụ cấu hình file /etc/sudoers
Xem hướng dẫn: man sudo , man sudoers
Defaults:user1 timestamp_timeout=0 root ALL=(ALL:ALL) ALL %sudo ALL=(ALL:ALL) ALL user1 host1 = (operator) /bin/ls, /bin/kill, /usr/bin/lprm user2 host1 = (operator:operator) /bin/ls, (root) /bin/kill,
/usr/bin/lprm
43