Khi được giao quản lý máy chủ Linux, sẽ yêu cầu bạn biết cách thêm, chỉnh sửa, tạm dừng hoặc xóa tài khoản người dùng và cấp cho người dùng quyền cần thiết đối với tệp, thư mục và các tài nguyên hệ thống khác để thực hiện nhiệm vụ được giao.
Dưới đây là 1 số thao tác quản lý User, Group trên HDH Linux bằng Command Line.
1. Quản lý User
1.1. Kiểm tra danh sách User
Danh sách user của Linux được lưu trong file /etc/passwd, để xem danh sách user này sử dụng lệnh cat
cat /etc/passwd
Thông tin của 1 user trong file /etc/passwd
[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]
Hiển thị thông tin 1 user bằng lệnh id
id user1
1.2. Tạo mới một user
Để thêm một user mới, chúng ta sử dụng lệnh adduser hoặc useradd trên Linux với quyền sudo
useradd là native command được built-in trong hệ thống, còn adduser là perl script sử dụng useradd như là 1 back-end nên về cơ bản 2 lệnh này là giống nhau.
Nếu dùng lệnh man để xem manual của 2 lệnh thì đều ra kết quả của useradd.
sudo adduser user1
Tạo nhiều user
#!/bin/bash for i in $[ cat users.txt ]; do useradd $i echo "user $i added successfully!" echo $i:$i"123" | chpasswd echo "Password for user $i changed successfully" done
1.2. Thêm/Xóa user vào group
Để add 1 user vào group sử dụng command usermod
sudo usermod -a -G root user1
Thêm user vào nhiều group
sudo usermod -a -G group1,group2 user1
Thêm nhiều user vào 1 group
sudo gpasswd -M user1,user2,user3 group1
Xóa user khỏi 1 group
sudo gpasswd -d username groupname
1.3. Thay đổi mật khẩu của user
sudo passwd user1
Trường hợp không chỉ rõ user thì sẽ thay đổi mật khảu của user hiện tại.
1.4. Thay đổi thông tin User
Để thay đổi thông tin user chúng ta sử dụng lệnh usermod
Thay đổi đường dẫn thư mục home của user
sudo usermod --home /home/user10/ user1
1.5. Lock và Unlock 1 user
sudo usermod --lock user1 sudo usermod --unlock user1
1.6. Xóa 1 user
sudo userdel user1
2. Quản lý group
2.1. Kiểm tra danh sách group
Thông tin của 1 group trong file /etc/group, tương tự để hiển thị danh sách group chúng ta sử dụng command cat
cat /etc/group
Thông tin 1 group trong file /etc/group như sau:
[Group name]:[Group password]:[GID]:[Group members]
2.2. Tạo mới 1 group
Tạo 1 group
sudo groupadd group1
Tạo nhiều group
sudo groupadd group1, group2, group3
2.3. Liệt kê danh sách User trong Groups
sudo groups sudo groups user1
2.4. Xóa 1 group
sudo groupdel group1
Nguồn: vinasupport.com
Khái niệm về User và Group
User là một thuật ngữ chuyên dụng được sử dụng trong ngành công nghệ thông tin. User được dùng để thể hiện tài khoản của người dùng trong máy tính. User giúp bạn bảo mật thông tin máy tính của bạn. User được sử dụng để login, gán quyền, v.v.. Mặc định khi bạn thêm một User mới vào thì User này sẽ sở nằm trong một group với tên trùng với tên user
Group là thuật ngữ chỉ 1 nhóm tập hợp của nhiều user lại với nhau ,Mỗi user trên linux bắt buộc phải thuộc một group chính [gọi là Primary Group], ngoài ra còn có thể lựa chọn tham gia vào các group khác [gọi là Secondary Group]
I.Lệnh quản trị User và Group
Lệnh tạo user mới, mặc định khi bạn thêm một User mới vào thì User này sẽ sở nằm trong một group với tên trùng với tên user
# useradd
Ngay sau khi ta tạo user mới ta cần phải đặt mật khẩu cho nó
Đặt mật khẩu cho user mới
# passwd
Tạo user với thư mục tùy chọn
# useradd -d /
Tạo user với group tùy chọn
# useradd -G
Tạo một user không tạo ra thư mục riêng
# useradd -M
Tạo user và tự khóa vào ngày nhất định
# useradd -e
Xóa user
# userdel
Tạo group mới
# groupadd
Xóa group
# groupdel
II.Một số file liên quan đến user và group
File /etc/passwd
Để kiểm tra xem user của bạn đã thật sự được thêm vào chưa, ta sẽ kiểm tra file /etc/passwd
# nano /etc/passwd
Trong file passwd sẽ hiển thị toàn bộ user có trên VPS kèm theo quyền và tên nhóm của nó
Cấu trúc file như sau
UserName : Password : UserID : Group ID : Comments : HomeDirectory : Shell
- Username: tên đăng nhập, phân biệt Hoa/thường, nên dùng chữ thường.
- Password: lưu chuỗi passwd đã hash, nếu có sử dụng /etc/shadow thì ở đây sẽ là chữ x
- User ID: hệ thống dùng user ID để phân biệt người này với người khác.
- Group ID: Đây là nhóm chính của user này.
- Comment: mô tả cho user.
- Home Directory: Thư mục home của từng user, thường sẽ nằm trong /home/tenuser
- Shell: Tên chương trình sẽ thực thi ngay sau khi user login vào. Nếu không có shell user sẽ không thể login. Mặc nhiên trên Linux sẽ dùng bash shell ở đây.
File /etc/default/useradd
Để cấu hình user ta sẽ xem file /etc/default/useradd
# nano /etc/default/useradd
Nội dung file như sau:
- Shell: Là một hệ vỏ mặc định mà user sẽ được sử dụng. Bạn cứ hiểu là khi vào SSH, bạn gõ các dòng lệnh Linux vào và thực thi, đó chính là bạn đang dùng Shell. Nếu bạn không muốn user được tạo ra có quyền sử dụng Shell thì để trống phần này.
- Group: là ID của group mặc định mà user sẽ được đưa vào khi tạo ra.
- Home: Đường dẫn mặc định chứa các thư mục của từng thành viên khi tạo ra.
- Inactive: Thời gian mà tài khoản sẽ bị khóa vĩnh viễn sau khi mật khẩu của thành viên đó hết hạn.
- Expire: Ngày mà tài khoản của thành viên được tạo ra mặc định sẽ bị khóa. Cấu trúc ngày tháng ở đây là YYYY-MM-DD [2014-09-23].
- Skel: Thư mục mẫu của user mà khi tạo ra, user sẽ tự động copy các file và thư mục trong đây vào thư mục /home/tên-user.
- Create_mail_spool: cho thành viên được phép sử dụng mail trên server nếu tùy chọn là yes. Mail sẽ được lưu trong file /var/mail/tên-user hoặc /var/spool/mail/tên-user.
File /etc/group
/etc/group là file chứa các thông tin về group
# nano /etc/group
Cấu trúc của nó như sau:
GroupName : Password : GroupID : User1,User2,…
- Groupname: tên nhóm
- Passwd: lưu chuỗi passwd ,chỗ này được ghi là x
- Group ID: ID của nhóm
- User: Danh sách các user nhận group này là secondary, ngăn cách nhau bằng dấu phẩy
Kết
Hi vọng rằng với bài viết này sẽ giúp các bạn hiểu rõ hơn về User và Group, hẹn gặp lại các bạn trong các bài tiếp theo. Chúc các bạn thành công!