Quản lý User / Group trên CentOS


USER
Có một số file quản lý thông tin User mà chúng ta cần quan tâm.
- File /etc/passwd : Nơi lưu trữ thông tin về user
Các dòng trên file này đều có 7 trường

Trường 1 (cột 1) : tên user,
Trường 2: password
Trường 3: UID, mã user,
Trường 4: GID, mã group chính (primary),
Trong Linux, 1 user thuộc 1 Group chính và có thể nhiều Group phụ
Trường 5: ghi chú,
Trường 6: home directory,
Trường 7: bash shell,
Chú ý
User root có UID và GID là 0, và user nào có GID là 0 cũng có quyền như root.
- File /etc/shadow : nơi lưu trữ password đã được mã hóa của User:

Có 8 trường:
    1: Tên đăng nhập
    2: Password đã mã hóa, nếu có "!!" ở đầu nghĩa là đang bị disable (nếu theo sau không có pass mã hóa thì user này không có pass)
    3: Số ngày thay đổi password gần đây nhất, tính từ 1-1-1970
    4: Số ngày tối thiểu giữa 2 lần thay đổi password, tức số ngày còn lại trước khi user này được phép đổi password (root có quyền tuyệt đối và được phép đổi pass thoải mái cho user này).
    5: Số ngày tối đa, là số ngày mà password này còn hiệu lực, nếu 99999 nghĩa là vô hạn.
    6: Số ngày cảnh báo: trước khi hết hạn password, hệ thống sẽ tự cảnh báo trước bao nhiêu ngày.
    7: Số ngày tính từ lúc password hết hạn cho đến nay
    8: Số ngày tính từ thời điểm 1-1-1970 đến lúc tại khoản bị cấm đăng nhập (chỉ khi password đang hết hạn).
- Tạo mới User: trong linux mỗi User sẽ được cấp 1 UID riêng và group riêng, mặc định là 1 user mới có 1 group tương ứng. UID được cấp từ con số 501 trở đi khi ta dùng lệnh tạo mới user (useradd).
Dùng lệnh useradd, với một số thông số hay dùng
-c:      comment (ghi chú để dễ phân biệt)
-d:      tạo home directory
-s       thư mục shell
-p:      password
-g:      GID - Group chính mà user sẽ tham gia
-G:     GID - Các group phụ mà user sẽ tham gia
-k:      chỉ định skel directory (skeleton), mặc định <skeletton directory> là /etc/skel
-m:     cho phép copy skel vào home directory, đi kèm với -k <skeletton directory>, mọi thứ bên trong <skeletton directory> do ta chỉ định sẽ được copy vào home directory,
-M:     không tạo home directory, dù cho /etc/login.defs có set CREATE_HOME là Yes.
-u:      UID
------------Nếu user đã có, muốn thêm / thay đổi thông tin ta dùng usermod với thông số như useradd
------------Nếu muốn user đăng nhập không cần pass: passwd -d <user>     hoặc bỏ dấu "!!" trong trường pass ở file /etc/shadow
- Xóa user
Lệnh userdel <tên user>           Xóa user
Nếu muốn xóa thư mục chủ và mọi thứ bên trong: userdel –r <tên user>
- Khóa user
Lệnh passwd –l <tên user>      hay usermod -L <tên user>     Khóa user
Lệnh passwd –u <tên user>     hay usermod -U <tên user>     Mở khóa
- Đổi password
Lệnh passwd <tên user>    -> Gõ pass 2 lần   
Đối với chính user đó, muốn đổi pass của mình thì gõ passwd
------------Cấu hình mặc định của lệnh useradd nằm trong /etc/default/useradd
------------Thiết lập mặc định của user nằm ở /etc/login.defs
------------Thư mục skel   /etc/skel

MỘT SỐ FILE CẤU HÌNH CHO VIỆC TẠO USER
3 file sau chính là các file cấu hình cho việc tạo user:
/etc/default/useradd
cấu hình mặc định cho lệnh useradd - nghĩa là nếu trong lệnh useradd, người dùng không định nghĩa home directory, shell, skel thì sẽ lấy thông tin mặc định tại đây.
/etc/login.defs
cấu hình mặc định cho user, như trong file /etc/passwd, vd như mail, PASS_MAX_DAYS, UID_MIN, ...
/etc/skell/
thư mục mẫu dùng để chép vào home directory của user
GROUP
- File /etc/group : Thông tin về group và các user thuộc group, mỗi dòng là 1 group và có 4 trường thông tin:

    1 : Tên group,
    2 : Mật khẩu của nhóm, nếu để trống thì không cần
    3 : Group ID (GID),
    4 : Danh sách các user thuộc group, cách nhau bởi dấu phẩy.
- File /etc/gshadow   Thông tin về group, cũng có 4 trường:

      1. Tên group
      2. Pass mã hóa (hàm crypt)
      Tức những user ở ngoài group này, muốn có quyền như group này thì cần chứng thực được pass này,
      Nếu trường này chứa các chuỗi không hợp lệ đối với crypt, không ai ngoài nhóm có thể truy cập được các quyền của nhóm,
      Nếu trường này để trống, cũng chỉ có thành viên mới có quyền truy cập của nhóm
      3: Admin của group, cách nhau bởi dấu "," - nếu có nhiều admin. người này có quyền thay đổi pass cho member
      4: Các thành viên, cách nhau bởi dấu ","
Trường 3,4 được chỉ định khi có lệnh gpasswd chỉ định rõ ai là admin, ai là member. Nếu không, dù có bao nhiêu member, group đó vẫn bị bỏ trống 2 trường này.
Add user vào group:
usermod -G <group1>,<group2>,... <user>
Nếu gõ:
(1) usermod -G <group1> <user>    rồi gõ tiếp
(2) usermod -G <group2> <user>
thì GID thứ cấp của <user> chỉ là <group2>
(2) nên gõ thành usermod -aG <group2> <user>    thì mới có đủ 2 group làm GID thứ cấp.
-Tạo Group / Sửa group / Xóa Group
Lệnh groupadd <tên group> với các thông số :
-g : gán GID. Giá trị này phải là duy nhất, trừ khi được sử dụng tùy chọn-o. Giá trị phải là không âm. Mặc định là lớn hơn 500 lớn hơn tất cả các nhóm khác. Các giá trị giữa 0 và 499 thường được dành cho các tài khoản hệ thống.
-o : Cho phép trùng GID,
-f : Cưỡng chế tạo group trong trường hợp trùng tên.
Sửa và Xóa Group lần lượt là : groupmod groupdel
- Xem 1 user thuôc group nào:
Gõ: groups <tên user>

- Quản trị Group
Group cũng có thể có password nhưng ít gặp. Bình thường chỉ có root mới có quyền joint một user vào một group nào đó nhưng khi group được đặt password thì normal user cũng có quyền join group đó bằng lệnh gpasswd –a nếu nó biết password. (Tức là nếu group không có password thì chỉ có root mới có quyền add member vào group)
Lệnh gpasswd cho ta quản lý member , password của group và các file /etc/gshadow , /etc/group. Thông số
              -a    Thêm user
-d    Xóa user
 
-r     Xóa password
 
-R    Hạn chế quyền truy cập cho user
 
-A,   Danh sách các admin của nhóm
 
-M   Danh sách các member của nhóm
 
Không có thông số nghĩa là thiết đặt password cho group.

Nhận xét

  1. Khi user Normal đang log màn hình ở chế độ khóa, cần đăng nhập = mật khẩu của user Normal để vào Desktop, thì User ROOT có thể log in để vào được màn hình Desktop của user Normal không ? Nếu được thì mình phải dùng lệnh gì ?

    Trả lờiXóa
  2. Khi user Normal đang log màn hình ở chế độ khóa, cần đăng nhập = mật khẩu của user Normal để vào Desktop, thì User ROOT có thể log in để vào được màn hình Desktop của user Normal không ? Nếu được thì mình phải dùng lệnh gì ?

    Trả lờiXóa

Đăng nhận xét