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
• 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: ____________________________________

