Skip to content

Tìm hiểu về User và Group#

Giới thiệu về user#

User và Group#

  • User:

    • Là người dùng có thể truy cập vào hệ thống, ứng dụng trong hệ thống.
    • User có usernamepassword.
    • Có hai loại user là super userregular user.
    • Mỗi user có một định danh riêng là UID.
    • UID của người dùng thông thường bắt đầu từ 500.
  • Group:

    • Group là tập hợp của nhiều user.
    • Mỗi user luôn là thành viên của ít nhất một group.
    • Khi tạo một user thì mặc định sẽ tạo ra một group chứa user đó.
    • Mỗi group có định danh riêng gọi là GID, GID của group thông thường bắt đầu từ 500.

Một số câu lệnh tương tác với user#

  • whoami: hiển thị người dùng hiện tại.
  • who: hiển thị thông tin về các user đang đăng nhập vào hệ thống.
  • w: hiển thị ai đang đăng nhập vào hệ thống và họ đang làm gì.
  • id: hiển thị UID, GID của primary group, và các group mà user này thuộc về.
  • su <username>: mở shell với người dùng khác.
  • su - <username>: chuyển user đồng thời chuyển thư mục hiện tại về thư mục home của user đó.
  • su -: khi không có user nào, chuyển sang user root.
  • sudo <command>: chạy lệnh với quyền root mà không cần mật khẩu root.
  • visudo: mở và edit file /etc/sudoers.

Quản lý user#

/etc/passwd#

Là một database user nội bộ trên Linux.

Hình minh họa /etc/passwd

File này bao gồm 7 cột phân cách bởi dấu :. Các cột chứa username, một ký tự x, UID, GID, mô tả, thư mục home, shell login.

Root#

Root hay superuser là tài khoản mạnh nhất trên hệ thống Linux, có UID là 0.

useradd#

Dùng để thêm user. Ví dụ:

Ví dụ useradd

/etc/default/useradd chứa các tùy chọn mặc định cho useradd. Sử dụng useradd -D để xem.

userdel#

Lệnh userdel dùng để xóa user. Thêm option -r để xóa cả thư mục home.

Ví dụ userdel

usermod#

Dùng để chỉnh sửa các thuộc tính của user.

Tạo thư mục home cho user#

Sử dụng useradd -m. Ngoài ra, có thể tạo thư mục và sửa quyền bằng mkdir, chown, chmod.

Ví dụ tạo thư mục home

Thư mục /etc/skel#

Khi sử dụng useradd -m, thư mục /etc/skel sẽ được copy đến thư mục home mới. /etc/skel chứa các thiết lập profile mặc định.

Ví dụ /etc/skel

Login shell#

Login shell được chỉ định trong file /etc/passwd. Ví dụ: /bin/bash, /bin/ksh.

Ví dụ login shell

User có thể đổi shell bằng usermod -s hoặc chsh.

Ví dụ đổi shell

Quản lý password của user#

passwd và chpasswd#

Dùng passwd để thiết lập hoặc thay đổi mật khẩu. chpasswd dùng để thay đổi mật khẩu cho nhiều tài khoản.

Ví dụ passwd

/etc/shadow#

Mật khẩu của user được mã hóa và lưu trữ trong /etc/shadow.

Ví dụ /etc/shadow

File /etc/shadow chứa chín cột phân cách bởi dấu : với các thông tin như username, mật khẩu mã hóa, ngày thay đổi mật khẩu, v.v.

Mã hóa mật khẩu#

  • Mã hóa với passwd: Mật khẩu được mã hóa bằng hàm crypt.
  • Mã hóa với openssl: Dùng openssl passwd để mã hóa mật khẩu cho useradd -p.

Ví dụ mã hóa mật khẩu với openssl

/etc/login.defs#

Chứa thiết lập mặc định cho mật khẩu của user như hạn và độ dài yêu cầu.

Ví dụ login.defs

chage#

Dùng chage -l để xem hoặc thay đổi thông tin mật khẩu.

Ví dụ chage

Disable mật khẩu#

Sử dụng usermod -L để khóa mật khẩu (thêm ! ở cột mật khẩu trong /etc/shadow). Dùng usermod -U để mở khóa.

Ví dụ khóa mật khẩu

User profile#

System profile#

Bash xác minh sự tồn tại của file /etc/profile và source nó nếu tồn tại.

~/.bash_profile#

Debian không có mặc định file này; RHEL dùng để kiểm tra ~/.bashrc và thêm thư mục ~/bin vào PATH.

~/.profile#

Nếu không có ~/.bash_profile, bash sẽ kiểm tra ~/.profile. File này không tồn tại mặc định trên Red Hat.

~/.bashrc#

RHEL kiểm tra /etc/bashrc và chứa alias, hàm người dùng. Debian chứa cấu hình cho $PS1, biến cho bash history, alias.

Ví dụ ~/.bashrc

~/bash_logout#

Khi thoát bash, thực thi ~/.bash_logout. Debian dùng để xóa màn hình console.

Ví dụ ~/.bash_logout

Quản lý nhóm#

Nhóm cho phép phân quyền cho group thay vì từng user.

groupadd#

Tạo group mới với groupadd. Ví dụ:

Ví dụ groupadd

Group file#

Thành viên của group được lưu trong /etc/group.

Ví dụ /etc/group

Lệnh groups#

Dùng groups để xem các group mà user thuộc về.

Ví dụ groups

usermod#

Sử dụng usermod -aG để thêm user vào group. Option -a để ngăn việc xóa khỏi các group khác.

Ví dụ usermod

groupmod#

Dùng groupmod để cấu hình thông tin của group như GID, tên, mật khẩu.

Ví dụ groupmod

groupdel#

Lệnh groupdel dùng để xóa một group.

gpasswd#

Có thể ủy quyền quản lý một group cho user khác với gpasswd.

Ví dụ gpasswd

Sudo (wheel) group vs root#

Tất cả user trong group sudo hoặc wheel có thể thực thi lệnh với quyền root qua sudo. User root không cần nằm trong group này.

Ví dụ sudo group