Quản lý người dùng trong Unix/Linux

Có 3 kiểu tài khoản trên một hệ thống Unix:

  1. Tài khoản gốc (Root account): Nó còn được gọi là superuser và sẽ có sự điều khiển tuyệt đối tới hệ thống. Một superuser có thể chạy bất cứ lệnh nào mà không bị hạn chế. Người sử dụng này có thể được ví như người quản lý hệ thống.
  2. Các tài khoản hệ thống: Các tài khoản hệ thống được cần cho các hoạt động riêng trong hệ thống như tài khoản mail và các tài khoản sshd. Những tài khoản này thường được cần cho một số chức năng riêng trên hệ thống của bạn, và bất cứ sự chỉnh sửa nào tới chúng có thể ảnh hưởng bất lợi tới hệ thống.
  3. Các tài khoản người dùng cá nhân: Các tài khoản này cung cấp sự truy cập mang tính tương tác tới hệ thống với người dùng và nhóm sử dụng và thường bị giới hạn truy cập vào những file và thư mục có tính chất quan trọng.

Unix hỗ trợ một khái niệm là tài khoản nhóm Group Account mà tạo nhóm một số tài khoản một cách logic. Mỗi tài khoản sẽ là một phần của bất cứ tài khoản nhóm nào. Nhóm trong Unix đóng vai trò quan trọng trong việc thực hiện sự quản lý về tiến trình và cho phép tới file.

Có 4 file chính quản lý người sử dụng:

  1. /etc/passwd: Giữ tài khoản người dùng và thông tin mật khẩu. File này giữ các thông tin quan trọng về các tài khoản trên hệ thống Unix.
  2. /etc/shadow: Giữ mật khẩu được biên thành mật mã của tài khoản tương ứng. Không phải tất cả các hệ thống đều hỗ trợ file này.
  3. /etc/group: File này giữ thông tin nhóm cho mỗi tài khoản.
  4. /etc/gshadow: File này giữ các thông tin tài khoản nhóm bảo mật.

Bạn có thể kiểm tra tất cả các file trên với lệnh cat.

Dưới đây là các lệnh có trong phần lớn các hệ thống Unix để tạo và quản lý các tài khoản cá nhân và nhóm.

LệnhMiêu tả
useraddThêm các tài khoản cá nhân tới hệ thống.
usermodChỉnh sửa các thuộc tính của tài khoản cá nhân.
userdelXóa các tài khoản cá nhân từ hệ thống.
groupaddThêm các tài khoản nhóm tới hệ thống.
groupmodChỉnh sửa các thuộc tính của tài khoản nhóm.
groupdelDỡ bỏ các tài khoản nhóm khỏi hệ thống.

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 sudo sử dụng command usermod

sudo usermod -a -G sudo 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 userid

sudo usermod -u 1001 user1

Nếu lệnh thay đổi không thực hiện được bởi process đang chạy kiểu giống:

usermod: user user1 is currently used by process 1532

Thì kill process đó đi

sudo kill 1532
hoặc 
killall -u user1

Thay đổi groupid

sudo groupmod -g 1001 user1

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

2.5 Chỉnh sửa một group trong Unix/Linux

Để chỉnh sửa một nhóm, sử dụng cú pháp lệnh groupmod:

groupmod -n new_modified_group_name old_group_name

Để thay đổi tên nhóm developers_2 thành deverloper, bạn gõ như sau:

groupmod -n developer developer_2

Dưới đây là cách thay đổi GID thành 545:

groupmod -g 545 developer
This entry was posted in Linux and tagged .

Leave a Reply

Your email address will not be published. Required fields are marked *