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
43 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 3349 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Hệ điều hành Linux - Chương 4: Quản trị tài khoản và nhóm người dùng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
Chương 4
Quản trị tài khoản và
nhóm người dùng
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
useradd user1
useradd -g accnt user2
10
Một số options
-c comment Mô tả thông tin tài khoản người dùng
-u uid 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
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]
• useradd user1
passwd user1
12
Một số options
-S Hiển thị tình trạng của tài khoản
-d Xóa bỏ mật khẩu của tài khoản người dùng (*)
-l Khóa tài khoản người dùng
-u Mở khóa tài khoản người dùng
Các lệnh quản trị người dùng
Thay đổi thuộc tính
Lệnh usermod :
usermod [options] login
usermod -c “CNPM” –g studs user1
13
Một số options
-l loginName Thay đổi tên tài khoản
-g initial_group Thay đổi nhóm primary
-G group1[,…] Thay đổi danh sách nhóm phụ
-d home_dir Thay đổi thư mục cá nhân của tài khoản
-L Khóa tài khoản
-U Mở khóa tài khoản
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 tên tài khoản
– password Mật khẩu đã được mã hóa.
– uid User ID.
– gid Group ID.
– gecos Thông tin thêm về user (ghi chú).
– homedir Thư mục home của user.
– shell 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 đó
– 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á.
• Lưu ý : các giá trị số ngày tính theo mốc từ 1/1/1970
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 tên group
– password mật khẩu (tùy chọn)
– gid group id
– members 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 /var/spool/mail
• PASS_MAX_DAYS 99999
• PASS_MIN_DAYS 0
• PASS_MIN_LEN 5
• PASS_WARN_AGE 7
• UID_MIN 500
• UID_MAX 60000
• GID_MIN 500
• GID_MAX 60000
• CREATE_HOME 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
31
Owner’s permissions
group’s permissions
other’s permissions
owner group
Các lệnh quản trị
Xem thông tin về sở hữu, quyền
Xem thông tin file: /tmp/vd.txt
ls –l /tmp/vd.txt hoặc
ls –l /tmp
Xem thông tin thư mục: /tmp
ls –ld /tmp hoặc
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
chgrp studs vd.txt
//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ố
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
- Không có quyền
4 quyền read (r)
2 quyền write (w)
1 quyền execute (x)
0 Không có quyền (-)
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
Vd2 : tắt quyền write của Group
chmod g–w contacts.odt
chmod 644 contacts.odt
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
tài khoản khác bằng lệnh su
su root //hoặc su
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