Quản lý người dùng và quyền truy nhập

Nội dung

• Quản lý người dùng • Các file cấu hình • Root và sudo • Các lệnh quản lý người dùng • Các lệnh quản lý nhóm

• Giới thiệu • Quyền truy nhập trên tệp và thư mục • Thay đổi quyền truy nhập • Mặt nạ quền user mask • Các quyền đặc biệt

• Quyền truy nhập

• Quản lý người dùng • Các file cấu hình • Root và sudo • Các lệnh quản lý người dùng • Các lệnh quản lý nhóm

Khái niệm quản lý người dùng

• Một người dùng (user) – là bất kỳ ai có tài

• Có quyền cao nhất – Có thể thay đổi cấu hình hệ thống – Tên root

khoản trên hệ thống linux. • Mỗi người dùng có user id. • Super user

• Người dùng được tổ chức thành các nhóm. • Mỗi người dùng có thể thuộc về nhiều nhóm,

có một nhóm là nhóm chính

Các tệp lưu thông tin người dùng, nhóm

• /etc/passwd: Gồm nhiều dòng, mỗi dòng lưu thông

tin một tài khoản người dùng gồm:

• login name • user id • default group • descriptive name • login program (shell)

• /etc/shadow: Mỗi dòng lưu thông tin về mật khẩu

của một tài khoản • initial password • password aging information

• /etc/group

• Chứa danh sách các nhóm

• /etc/gshadow

• Chứa thông tin mật khẩu nhóm

/etc/passwd

Username:password:UID:GID:Info:Home:Shell

• Username: tên tài khoản

• Password: x thể hiện có mật khẩu lưu trong /etc/shadow

• User ID (UID):

• Group ID (GID): group ID của nhóm chính

• User ID Info: Thông tin thêm về người dùng, ví dụ họ tên, đơn vị

làm việc, số tel…

• Home directory: Đường dẫn tuyệt đối đến thư mục mà người

dùng được đặt vào sau khi login.

• Shell: Đường dẫn tuyệt đối đến chương trình shell được kích hoạt

cho tài khoản này khi đăng nhập, ví dụ /bin/bash.

$ grep root /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin

/etc/shadow

Username:Password:Last_pwd_change:Minimum:Maxim um:Warn:Inactive :Expire • Username: • Password: Mật khẩu mã hóa • Last password change: • Minimum: Số ngày tối thiểu phải đổi mật khẩu • Maximum: Số ngày tối đa mật khẩu có giá trị • Warn : Số ngày trước hạn mà người dùng được cảnh

báo phải đổi mật khẩu

• Inactive : Khi mật khẩu hết hạn, tài khoản sẽ bị vô hiệu

sau số ngày này.

• Expire : Ngày tài khoản hết hạn

$ grep root /etc/shadow root:b93.GT2r.7IZ6:9718:0:60:7:::

/etc/group

Group_name:Password:Group_ID(GID):Grou p_list • Group name: tên nhóm • Password: Nói chung không dùng. Mật khẩu

“X” có nghĩa là mật khẩu được lưu trong /etc/gshadow • Group ID (GID): • Group list: Danh sách người dùng của nhóm

/etc/gshadow

Group_name:Encrypted_password:Group_a dmin: Group_members

• Group name : Tên nhóm • Encrypted password : mật khẩu mã hóa • Group administrators: thành viên được quyền

thêm, xóa thành viên

• Group members: danh sách thành viên

Root

• Superuser account không bị hạn chế quyền

truy nhập • Tên “root”

• Login bằng tài khoản root • Dùng lệnh su để đổi đăng nhập

l % su

10

• Root có user ID =0 • Có 2 cách dùng quyền superuser

Câu lệnh Sudo

thực hiện một số câu lệnh, mà bình thường họ không có quyền, với quyền như của root.

• Tiện ích sudo cho phép một người dùng được phép

• File /etc/sudoers chứa cấu hình và tham số về

cách hoạt động của sudo

• sudo mkdir /test

11

• Ví dụ:

Các lệnh quản lý người dùng

• useradd/mod/del • passwd • groupadd/mod/del • gpasswd • sg/newgrp • su • users/groups • id

Thêm User • Lệnh useradd tạo bản ghi về người dùng trong /etc/passwd và

/etc/shadow

• Các tùy chọn để thay thế các giá trị mặc định

đặc tả user id đặc tả group (mặc định GID=1)

-u uid -g group -c comment Mô tả user (mặc định là rỗng) -d dir -m

đặc tả thư mục cá nhân của người dùng tạo thư mục cá nhân (nếu không sẽ không được

tạo sẵn)

đặc tả chương trình shell

-s shell

# useradd -m henry # useradd -u 321 -g 152 -m -s /bin/bash bill

• Sau khi thêm user, phải thực hiện đặt mật khẩu khởi tạo cho

người dùng bằng lệnh passwd riêng

Sửa tài khoản người dùng

• Usermod

•usermod sử dụng các tùy chọn giống của useradd •Nếu thay đổi UID, cần sử dụng thêm option -U để thay đổi UID của các file thuộc về người dùng

# usermod -U -u 321 -s /bin/bash

bill

Thiết lập mật khẩu • Thiết lập mật khẩu ban đầu cho một tài khoản mới được tạo

• Dùng chương trình passwd với tham số là tên tài khoản.

# passwd henry new password: retype password:

• Khi thực hiện lệnh dưới quyền root sẽ không bị hỏi

nhập mật khẩu hiện tại

Xóa tài khoản người dùng • Dùng userdel

• Userdel không tùy chọn sẽ vẫn giữ nguyên các tệp của người

dùng này

• Dùng userdel -r sẽ xóa các file của người dùng trong thư mục cá

nhân của người dùng, các file khác vẫn còn

# userdel -r henry

Các lệnh quản lý nhóm

• utility to manage groups • Thêm group: groupadd • Sửa group: groupmod • Xóa group: groupdel • gpasswd • sg/newgrp • users/groups

Preparing Groups (/etc/group)

• Use groups for working on projects and in departments

• groups provide a second level of access control • groups will allow users to share files

• Setup groups before adding new users

• One line per group in /etc/group

name::gid:user1,user2

group name

list of users allowed 'secondary' access to this group

numeric id

Thêm group

• Thêm group

#groupadd students #groupadd staff #groupadd teachers

# groupadd -g 151 swamp # groupadd -g 152 barracks

• Tạo mới user và thêm vào trong một group

#useradd –g teachers rp #useradd –g staff srk

19

Changing Group Membership • Each user belongs to a group (defined in /etc/passwd)

• primary membership can be changed with usermod -

g

• User can also be allowed access to other groups

• secondary membership is controlled by usermod -G • the group must already exist

trapper's primary group is 400

add new group

# grep trapper /etc/passwd trapper::416:400::/home/trapper:/bin/bash # groupadd -g 600 swamp # usermod -G swamp trapper # grep trapper /etc/group swamp::600:trapper

add trapper to group 600 (his primary membership unchanged)

Thay đổi người sở hữu và nhóm

• Thay đổi người sở hữu của file

$chown [-R]

hiện các lệnh (ví dụ thực hiện việc thay đổi quyền sở hữu hoặc nhóm của mọi file trong cùng một thư mục)

$chgrp • Thay đổi nhóm của file • Có thể sử dụng tùy chọn –R để lặp lại việc thực

• Các lệnh trên chỉ dành cho những người sử

dụng có quyền root

Bài tập

• Tự tạo một tài khoản mới trên máy của bạn,

• Cấp thư mục cá nhân cho tài khoản này • Đặt mật khẩu cho tài khoản.

đặt tên là student

• Đăng nhập vào tài khoản mới bằng cách dùng

• $su student

lệnh su:

• Thử tạo tệp, thư mục bằng tài khoản mới và

xem các quyền, nhóm trên tệp và thư mục đó.

• Giới thiệu • Quyền truy nhập trên tệp và thư mục • Thay đổi quyền truy nhập • Mặt nạ quền user mask • Các quyền đặc biệt

• Quyền truy nhập

Tư tưởng

— Hệ thống xác định một người dùng hay một nhóm có thể truy cập vào một file hay không căn cứ trên các quyền được gán cho họ

• Cho phép hiển thị nội dung của file hoặc thư mục

• r : đọc

• Cho phép thay đổi nội dung của file • Cho phép thêm hoặc xóa các file trong một thư mục

• w : ghi

• Cho phép thực thi file dưới dạng một chương trình • Cho phép chuyển đến thư mục cần truy cập

• x : thực thi

— -: không có một trong các quyền trên

Các nhóm người sử dụng

• Có 3 nhóm người sử dụng đối với 1 file/ thư mục: • u (người sở hữu) : người sở hữu duy nhất của file • g (group) : nhóm chính của chủ sở hữu • o (others) : những người sử dụng khác, không phải là người sở hữu file cũng như không thuộc nhóm chứa file.

• Mỗi nhóm người sử dụng sẽ có một tập các

quyền (r, w, x) xác định.

Directory and File Permissions

Access Types

Access Type Meaning on File Meaning on Dir.

r (read)

List directory contents

View file contents (open, read)

w (write)

Change file contents

- Change directory contents - Be careful !!!

x (execute)

Run executable file

- Make it your cwd - Access files (by name) in it

-

Permission denied

Permission denied

Xem quyền truy nhập

• Xem quyền truy nhập trên một file, thư mục băng: • ls -l • Ví dụ: ux% ls -l unix total 387 drwxr--r-- 1 z036473 student 862 Feb 7 19:22

unixgrades

-rw-r--r-- 1 z036473 student 0 Jun 24 2003 uv.nawk -rw-r--r-- 1 z036473 student 0 Jun 24 2003 wx.nawk -rw-r--r-- 1 z036473 student 0 Jun 24 2003 yz.nawk

Ví dụ

$ ls -l

----rw-rw- 1 tuananh user1 16 Feb 10 19:12 test1.txt

-rw-rw-rw- 1 tuananh user1 16 Feb 10 19:12 test2.txt

drw-r--r-- 2 tuananh user1 512 Feb 10 19:14 vanban

$ whoami

tuananh

$ cat test1.txt

cat: test1.txt: Permission denied

$ cat test2.txt

Un fichier de test

$ cp test2.txt vanban

cp: vanban: Permission denied

Thay đổi quyền

Câu lệnh chmod

Thay đổi quyền: sử dụng biểu tượng

32

Thay đổi quyền: sử dụng biểu tượng

ux% ls -li sort.c

118283 -rw-r--r-- 1 krush

csci

80 Feb 27 12:23 sort.c

Ví dụ 1: Đổi quyền trên file “sort.c” để : a) Mọi người có quyền đọc và thực thi b) Chỉ có chủ sở hữu và nhóm sở hữu có quyền ghi

Mong muốn đạt được:

Đáp án: chmod ug=rwx,o=rx sort.c

chmod ugo+rx,g+w sort.c

34

rwx|rwx|r-x

Thay đổi quyền: sử dụng số

35

Thay đổi quyền: sử dụng số

ux% ls -li sort.c

118283 -rw-r--r-- 1 krush csci 80 Feb 27 12:23 sort.c

Ví dụ 2: Thay đổi quyền trên file “sort.c” sử dụng chế độ số a) Mọi người có quyền đọc và thực thi b) Chỉ có chủ sở hữu và nhóm sở hữu có quyền ghi

Mong muốn:

Answer: chmod 775 sort.c

36

rwx|rwx|r-x

Bài tập

Không quan tâm đến quyền hiện tại trên file “myfile”, hãy thực hiện gán quyền để a) Chủ sở hữu có quyền đọc, ghi, thực thi b) Nhóm sở hữu có quyền đọc, thực thi c) Người dùng khác có quyền thực thi

Mong muốn: rwx|r-x|--x

37

1) Dùng biểu tượng: __________________________________ 2) Dùng số: __________________________________

Bài tập

b) Nhóm sở hữu có quyền đọc, thực thi c) Người dùng khác có quyền thực thi

Không quan tâm đến quyền hiện tại trên file “myfile”, hãy thực hiện gán quyền để a) Chủ sở hữu có quyền đọc, ghi, thực thi

Mong muốn : rwx|r-x|--x

chmod u=rwx,g=rx,o=x myfile

38

chmod 751 myfile 1) Dùng biểu tượng: __________________________________ 2) Dùng số: __________________________________

User Masks (giới hạn quyền mặc định) • Quyền mặc định có thể được đặt thông qua user mask (mask). • Thông thường user mask được thiết lập sẵn bởi quản trị cho mỗi người dùng khi tài khoản được thiết lập, trong file $HOME/.cshrc

• user mask chứa một số bát phân (octal) mô tả các quyền sẽ bị LOẠI BỎ từ quyền mặc định mỗi khi một file hay thư mục được tạo

• Quyền mặc định là – 777 cho thư mục – 666 cho file

– Nếu usermask là 022 (về nhị phân: 000 010 010) có nghĩa là quyền w của group và other bị loại bỏ thêm từ quyền mặc định tức là quyền còn lại là – rwx r-x r-x cho thư mục – rw- r- - r- - cho tệp

39

Figure 4-10

The umask Command

40

Lệnh: umask

rw-rw-rw- 666

% umask 000 Cho file: Cho thư mục: rwxrwxrwx 777

42

Lệnh umask không tham số hiển thị mặt nạ hiện tại đang thiết lập

Bài tập

Giả sử bạn chạy lệnh umask 002. Sau đó bạn tạo ra

các tệp mới và thư mục

43

002 = 000 000 010 a) Quyền trên mỗi file bạn tạo ra là gì? Ban đầu 666 à 664 b) Quyền trên mỗi thư mục bạn tạo ra là gì? Ban đầu 777 à 775

Quyền đặc biệt

– Set User Id (SUID) – Set Group ID (SGID) – Sticky bit

44

• Có thêm 3 quyền đặc biệt trên file, thư mục

Quyền đặc biệt: SUID • SUID được thiết lập cho phép người dùng bất kỳ

được thực thi tệp dưới quyền của người sở hữu tệp è cho mượn quyền của chủ sở hữu

• Ví dụ: chương trình “/usr/bin/passwd” được dùng để thay đổi mật khẩu của người dùng. File được sở hữu bởi root với quyền: r-sr-sr-x

• Mật khẩu người dùng được lưu trong /etc/shadow

45

và chỉ có root có quyền đọc, ghi. •àVề lý thuyết, chỉ có root mới có quyền cập nhật mật khẩu mới

• Khi “/usr/bin/passwd” có SUID được thiết lập, mọi người dùng thực thi “/usr/bin/passwd” được cho mượn quyền của chủ sở hữu (root) và do đó có quyền cập nhật /etc/shadow

Special Permissions • Các quyền đặc biệt không có chỗ biểu diễn riêng

khi xem bằng lệnh “ls –l”

• Các quyền đặc biệt được biểu diễn ở mục quyền

thực thi.

r w x r w x r w x

SGID STICKY

SUID

r w s r w s r w t

BIT

46

Special Permissions

• Nếu các quyền đặc biệt được thiết lập mà quyền “execute” tại vị trí tương ứng không được thiết lập, các chữ S, T được viết bằng chữ hoa.

r w - r w - r w -

SGID

SUID

STICKY BIT

47

r w S r w S r w T

Quyền đặc biệt: GUID

• Tương tự SUID, • SGID cho mượn quyền của nhóm chứa tệp khi

48

chạy chương trình

Quyền đặc biệt: Sticky Bit

• Sticky bit có ý nghĩa khi áp dụng cho thư mục • Tình huống:

•Có một thư mục chung cho nhiều user •Thư mục được thiết lập quyền ghi để mọi người cùng ghi file chung à mọi người cũng có thể xóa file trong đó

49

• Nếu“sticky” bit được thiết lập cho thư mục, other có quyền ghi thì mọi người dùng có thể ghi vào thư mục chung nhưng chỉ có thể xóa file do chính mình tạo ra hoặc thêm vào thư mục.

Quyền đặc biệt: Sticky Bit

Sticky Bit

50

• Ví dụ: ls –ld /tmp drwxrwxrwt 3 root sys 1077 Jan 25 13:30 /tmp

Thiết lập quyền đặc biệt

suid sgid

stb

r w x

r w x

r w x

1

1

1

1

1

1

1

1

1

1

1

1

7

7

7

7

Special

user

group

others

51

Sử dụng “chmod” ở chế độ số: chmod 7777 filename

Bài tập

• Thư mục BaiThiLinux được tạo để mọi sinh viên

copy bài thi của mình vào đó

• Sử dụng các lện Linux để thiết lập quyền trên thư mục BaiThiLinux sao cho mọi sinh viên có thể nộp bài nhưng không xóa được bài của nhau.

52

chmod 1777 BaiThiLinux • Answer: ____________________________________