Trong bài viết này, mình sẽ giúp các bạn hiểu rõ hơn về cấu trúc user và group trong hệ điều hành Linux và các lệnh quản trị đi kèm .
1) Quản trị Users
- Trên Linux có 2 loại user :
- User hệ thống
- User người dùng
- User hệ thống : dùng để thực thi các module , script cần thiết phục vụ cho hệ điều hành .
- User người dùng : là những tài khoản để login sử dụng hệ điều hành .
- Trong các tài khoản người dùng thì tài khoản user
root
( super user ) là tài khoản quan trọng nhất :- Tài khoản này được tự động tạo ra khi cài đặt Linux .
- Tài khoản này không thể đổi tên hoặc xóa bỏ .
- User
root
còn gọi là super user vì nó có full quyền trên hệ thống . - Chỉ làm việc với user
root
khi muốn thực hiện công tác quản trị hệ thống , trong các trường hợp khác , chỉ nên làm việc với user thường .
- Mỗi user thường có đặc điểm như sau :
- Tên tài khoản user là duy nhất , có thể đặt tên chữ thường , chữ hoa .
- Mỗi user có 1 mã định danh duy nhất ( uid ) .
- Mỗi user có thể thuộc về nhiều group .
- Tài khoản super user có uid=gid=
0
.
1.1) File /etc/passwd
- Là file văn bản chứa thông tin về các tài khoản user trên máy .
- Mọi user đều có thể đọc tập tin này nhưng chỉ có user
root
mới có quyền thay đổi . - Để xem nội dung file ta dùng lệnh :
cat /etc/passwd
- Cấu trúc file gồm nhiều hàng , mỗi hàng là 1 thông tin của user . Dòng đầu tiên của tập tin mô tả thông tin cho user
root
( có uid=0
) , tiếp theo là các tài khoản khác của hệ thống , cuối cùng là tên các tài khoản người dùng bình thường . Mỗi hàng được chia thành7
cột cách nhau bằng dấu:
Ý nghĩa các cột trong file :
1
– Tên user ( login name )2
– Mật khẩu group đã được mã hóa ( vì có file/etc/shadow
) nên mặc định ở đây làx
3
– User ID ( uid )4
– Group ID ( gid )5
– Tên mô tả người sử dụng ( comment )6
– Thư mục home của user ( thường là/home/user_name
)7
– Loại shell sẽ hoạt động khi user login , thường là/bin/bash
1.2) File /etc/shadow
- Là tập tin văn bản chứa thông tin về mật khẩu của các tài khoản user lưu trên máy .
- Chỉ có user
root
mới có quyền đọc tập tin này . - User
root
có quyền reset mật khẩu của bất cứ user nào trên máy . - Mỗi dòng trong tập tin chứa thông tin về mật khẩu của user , định dạng của dòng gồm nhiều cột , giá trị , dấu
:
được sử dụng để phân cách các cột .
Ý nghĩa các cột :
1
– Tên user , giống với trong/etc/passwd
( login name )2
– Mật khẩu đã được mã hóa- Để trống ( empty ) – không có mật khẩu
*
– tài khoản bị tạm ngưng ( disable )
3
– Số ngày kể từ lần cuối thay đổi mật khẩu ( tính từ1/1/1970
)4
– Số ngày trước khi có thể thay đổi mật khẩu . Giá trị0
có nghĩa có thể thay đổi bất cứ lúc nào .5
– Số ngày mật khẩu có giá trị .99999
có nghĩa mật khẩu có giá trị vô thời hạn .6
– Số ngày cảnh báo user trước khi mật khẩu hết hạn7
– Số ngày sau khi mật khẩu hết hạn tài khoản sẽ bị khóa . Thường có giá trị là7
( 1 tuần )8
– Số ngày kể từ khi tài khoản bị khóa ( tính từ1/1/1970
)
1.3) Các lệnh quản lý user
1.3.1) useradd
- Là lệnh tạo tài khoản user .
useradd [options] [login_name]
- Options :
-c
: comment : tạo bí danh-u
: set user ID : mặc định sẽ lấy số ID tiếp theo để gắn cho user ( bắt đầu từ1000
)-d
: chỉ định thư mục home cho user-g
: chỉ định group chính-G
: chỉ định group phụ ( group mở rộng )-s
: chỉ định shell cho user sử dụng
VD1 : Tạo user với tênWill
và tên đầy đủ làWill Smiths
:
useradd -c "Will Smiths" will
=> User được tạo sẽ thuộc về group will
và thư mục home của user là /home/will
được tạo ra tự động .
VD2 : Tạo user với tênjustice
và tên đầy đủ làJustice Smiths
, user thuộc nhóm users và các nhómwheel
,sales
:
useradd -g users -G wheel,sales -c "Justice Smiths" justice
1.3.2) passwd
- Là lệnh đặt / đổi password cho user
passwd [login_name]
1.3.3) usermod
- Là lệnh sửa thông tin tài khoản .
usermod [options] [login_name]
- Options :
-c
: comment : tạo bí danh-d
: thay đổi thư mục home cho user-m
: di chuyển nội dung từ thư mục home cũ sang thư mục home mới ( chỉ dùng với-d
)-g
: chỉ định group chính-G
: chỉ định group phụ ( group mở rộng )-s
: chỉ định shell cho user sử dụng-l
: đổi tên tài khoản-L
: khóa tài khoản
VD : Đổi tên tài khoảnwill
thànhjaden
(Jaden Smiths
) với thư mục home của user là/home/jaden
usermod -l jaden -c "Jaden Smiths" -m -d /home/jaden will
1.3.4) userdel
- Là lệnh xóa tài khoản user
userdel [options] [login_name]
- Options :
-r
: xóa cả thư mục home của user
- Khi xóa tài khoản user bằng lệnh
userdel
, dòng mô tả tương ứng của user trong tập tin/etc/passwd
và/etc/shadow
cũng bị xóa .
1.3.5) chage
- Dùng để thiết lập chính sách ( policy ) cho user
chage [options] [login_name]
- Options :
-l
: xem chính sách của 1 user-E
: thiết lập ngày hết hạn cho account-I
: thiết lập ngày bị khóa sau khi hết hạn mật khẩu ( định dạng ngày tháng làYYYY-MM-DD
)-m
: thiết lập số ngày tối thiểu được phép thay đổi password-M
: thiết lập số ngày tối đa được phép thay đổi password-W
: thiết lập số ngày cảnh báo trước khi hết hạn mật khẩu
VD1: Xem policy của user :
chage -l jaden
VD2: Thiết lập policy cơ bản :
chage -E 2019-08-30 -m 5 -M 90 -I 30 -W 14 jaden
=> Lệnh trên sẽ thiết lập mật khẩu hết hạn vào ngày 30/4/2019
. Ngoài ra , số ngày tối thiểu / tối đa giữa các lần thay đổi mật khẩu trong khoảng 5
và 90
. Các tài khoản sẽ bị khóa sau 30
ngày sau khi hết hạn , và 1 tin nhắn cảnh báo sẽ được gửi ra 14
ngày trước khi hết hạn mật khẩu .
VD3: Thiết lập tắt chính sách hết hạn mật khẩu :
chage -I -1 -m 0 -M 99999 -E -1 jaden
=> Lệnh trên sẽ set “Password inactive
” -> never
( không bị hết hạn mật khẩu ) ( thông số -1
); số ngày tối thiểu / tối đa giữa các lần đổi mật khẩu là vô hạn ( 0
-> 99999
) ; Tài khoản không bao giờ bị hết hạn ( “Account expires
” -> never
) ( thông số -1
) => ĐÂY LÀ THIẾT LẬP MẶC ĐỊNH
VD4: Thiết lập bắt buộc user đổi mật khẩu trong lần đầu đăng nhập :
chage -d 0 jaden
=> Lệnh trên sẽ thiết set “Last Password Change
” thành “Password must be changed
” và user bắt buộc phải đổi mật khẩu ngay lần đầu đăng nhập .
1.3.6) id
- Xem thông tin user hiện hành .
1.3.7) su
- Chuyển đổi user làm việc từ terminal .
- User
root
chuyển qua các user khác thì không cần nhập mật khẩu . - User khác chuyển qua user
root
thì phải nhập password của userroot
.
su -l [login_name]
2) Quản trị Group
- Group là tập hợp của nhiều user .
- Mỗi group có 1 tên duy nhất và 1 mã định danh duy nhất ( gid ) .
- Khi tạo ra 1 user ( không dùng option
-g
) thì mặc định 1 group mang tên user được tạo ra .
2.1) File /etc/group
- Là tập tin văn bản chứa thông tin về các group trên máy .
- Mọi user đều có quyền đọc tập tin này nhưng chỉ có user
root
mới có quyền thay đổi . - Mỗi dòng tập tin chứa thông tin về 1 group trên máy , định dạng của dòng gồm nhiều cột giá trị , dấu
:
được sử dụng để phân cách giữa các cột .
- Ý nghĩa các cột :
1
– Tên group2
– Mật khẩu group đã được mã hóa ( vì có file/etc/gshadow
) nên mặc định ở đây làx
3
– Mã nhóm ( gid )4
– Danh sách các user nằm trong nhóm
2.2) File /etc/gshadow
- Chứa thông tin password của group .
- Ý nghĩa các cột :
1
– Tên group2
– Mật khẩu group đã được mã hóa
- Để trống ( empty ) – không có mật khẩu
3
– Danh sách các user có quyền admin trên group này4
– Danh sách các user có trong group
2.3) Các lệnh quản lý group
2.3.1) groupadd
- Là lệnh tạo group .
groupadd [options] [group_name]
- Options :
-g [gid]
: định nghĩa nhóm cùng mã nhóm ( gid )-g [gid]
: định nghĩa nhóm cùng mã nhóm ( gid )
2.3.2) gpasswd
- Tạo mật khẩu cho group .
gpasswd [group_name]
2.3.3) groupmod
- Là lệnh sửa thông tin group .
groupmod [options] [group_name]
- Options :
-g [gid]
: sửa lại mã nhóm ( gid )-n [group_name]
: sửa lại tên group
2.3.4) groupdel
- Dùng để xóa 1 group .
groupdel [group_name]
Thay đổi các thông số mặc định
- Khi sử dụng lệnh
useradd
hoặcgroupadd
, nếu chúng ta không liệt kê đầy đủ các thông số cần thiết thì hệ thống sẽ lấy theo giá trị mặc định đã được định nghĩa . - Chúng ta có thể thay đổi định nghĩa những giá trị này trong các file sau :
/etc/login.defs
: file chứa thông số mặc định khi tạo user hoặc tạo group .
/etc/skel/
: tất cả những file và thư mục con trong này sẽ được copy sang thư mục home của user mới tạo .
Leave a Reply