Skip to the content.

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

I.Giới thiệu về user.

1. user và group.

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

II.Quản lý user

1./etc/paswd

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

File này bao gồm 7 cột được 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.

2. root

Root hay được gọi là superuser là tài khoản mạnh nhất trên hệ thống Linux. User này có thể làm tất cả mọi thứ, kể cả việc tại ra user khác. Tài khoản root luôn có UID là 0.

3. useradd

Bạn có thể thêm user bằng lệnh useradd. Ví dụ dưới đây thêm tài khoản có username lam, tạo thư mục home cho user (-m), đặt tên cho thư mục home (-d), và thêm mô tả(-c).

/etc/default/useradd là file chứa tùy chọn mặc định cho lệnh useradd. Ngoài việc xem file, có thể sử dụng useradd -D để xem các tùy chọn mặc định này.

4. userdel

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

5. usermod

usermod là lệnh dùng để chỉnh sửa những tính chất của user.

6. Tạo thư mục home cho user

Cách dễ nhất là thêm option -m vào câu lệnh useradd khi tạo user. Có một cách để tạo thư mục home cho một user sau khi tạo là dùng mkdir để tạo thư mục và sửa owner và quyền cho user đó bằng chown và chmod.

7.Thư mục /etc/skel

Khi sử dụng useradd -m thì thư mục /etc/skel sẽ được copy đến thư mục home mới được tạo. Thư mục /etc/skel chứa một số file thường bị ẩn chứa các thiết lập profile và giá trị mặc định cho ứng dụng. Thư mục /etc/skel phục vụ như thư mục home mặc định và chứa profile người dùng mặc định.

8. Login shell

File /etc/passwd chỉ định login shell cho user ở cột cuối cùng. Login shell có thể là /bin/bash hay /bin/ksh, hay một số shell khác.

Có những user có phần login shell là /usr/sbin/nologin hay /bin/false là những user không sử dụng shell.

Bạn có thể sử dụng usermod với option -s để thay đổi shell cho user

User cũng có thể đổi login shell của họ với lệnh chsh

III.Quản lý password của user.

1.passwd và chpasswd

Mật khẩu của người dùng có thể được thiết lập và thay đổi bằng lệnh passwd. Người dùng sẽ được yêu cầu nhập mật khẩu cũ trước khi họ nhập hai lần mật khẩu mới.

Khác với lệnh passwd là chỉ thiết lập mật khẩu được cho một tài khoản thì lệnh chpasswd là lệnh dùng để thay đổi mật khẩu của nhiều tài khoản cùng một lúc.

2. /etc/shadow

Mật khẩu của user được mã hóa và lưu trữ ở trong file /etc/shadow. File /etc/shadow là file chỉ đọc và chỉ có user root mới có quyền đọc nó.

File /etc/shadow chứa chín cột phân cách bởi dấu hai chấm. Chín cột này (từ trái qua phải ) là username, mật khẩu được mã hóa, lần cuối mật khẩu thay đổi, số ngày còn lại mật khẩu không được thay đổi, ngày mật khẩu hết hạn, cảnh báo trước khi mật khẩu hết hạn bao nhiêu ngày, số ngày sau khi hết hạn trước khi vô hiệu hóa tài khoản, và ngày tài khoản bị vô hiệu hóa, cột cuối chưa có ý nghĩa gì.

3. Mã hóa mật khẩu

Mã hóa với passwd Mật khẩu được lưu ở một dạng mã hóa. Mã hóa được thực hiện bởi hàm crypt. Cách dễ nhất để tạo và mã hóa mật khẩu là dùng lệnh passwd. Mã hóa với openssl Một cách khác để tạo user với mật khẩu là sử dụng useradd với opton -p nhưng nó yêu cầu mật khẩu được mã hóa. Để mã hóa mật khẩu bạn có thể sử dụng câu lệnh openssl passwd. Ví dụ:

Lưu ý là làm theo cách trên sẽ lưu mật khẩu ở trong shell history. Thêm một dấu cách trước câu lệnh để nó không lưu vào history.

4. /etc/login.defs

File /etc/login.defs chứa một số 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 của password. (có cả giới hạn uid bà gid, hoặc thư mục home có được mặc định tạo ra hay không)

5. chage

chage là câu lệnh để xem các thông tin về mật khẩu (-l), và cũng dùng để thay đổi các thông tin đó.

6. Disable một mật khẩu.

Mật khẩu lưu ở trong /etc/shadow không thể bắt đầu với dấu chấm than. Khi giá trị của cột thứ hai trong file shadow mà bắt đầu với dấu chấm than thì mật khẩu không thể sử dụng.

Tính năng này được gọi là khóa, tắt hoặc tạm dừng một tài khoản người dùng. Bạn có thể sử dụng tính năng này với lệnh usermode -L

Để mở khóa user ta dùng lệnh usermod -U.

V.User profile

1. System profile

Bash xác minh sự tồn tại của file /etc/profile và source nó nếu nó tồn tại. File này có thể sẽ lưu thông tin về biến PATH, HOSTNAME, PS1, các alias,… cho toàn bộ hệ thống.

2. ~/.bash_profile

Khi file này tồn tại, bash sẽ source nó. Debian 5/6/7 mặc đinh không có file này. RHEL 7/Centos 7 sử dụng file này để kiểm tra sự tồn tại của file ~/.bashrc, và source nó nếu nó tồn tại. Nó cũng thêm thư mục ~/bin vào biến PATH. Nếu không có file ~/.bash_profile, hệ thống sẽ kiểm tra file ~/.bash_login

4. ~/.profile

Nếu không có cả hai file ~/.bash_profile và ~/.bash_login thì bash sẽ xác nhận sự tồn tại của ~/.profile và thực thi nó. File này không tồn tại mặc định trên Red hat.

File này kiểm tra nếu có file ~/.bashrc thì sẽ source nó.

5. ~/.bashrc

Trên RHEL, file này để kiểm tra /etc/bashrc và source nó. Nó cũng là file để chứa các alias, các hàm cho người dùng.

Trên Debian, nó chứa cấu hình cho $PS1, một số biến cho bash history và một số alias.

6. ~/bash_logout

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

Red Hat 5 chỉ đơn giản sử dụng /usr/bin/clear

V.Quản lý nhóm

Nhóm chứa các user và cho phép phân quyền cho group thay vì phải phân quyền cho từng user

1.groupadd

Group có thể được tạo bằng câu lệnh groupadd. Ví dụ tạo 5 group chống:

2.Group file

Các user có thể là thành viên của nhiều nhóm. Thành viên của nhóm được xác định trong file /etc/group.

Cột đầu là tên group. Cột thứ hai là mật khẩu group được mã hóa hoặc có thể chống. Cột thứ 3 là group ID. Cột thứ 4 là danh sách thành viên của group.

3. Lệnh `groups

User có thể sử dụng lệnh groups để có thể xem các group mà nó thuộc về.

4. usermod

Thành viên của nhóm có thể được chỉnh sử bởi lệnh useradd hoặc usermod:

Nếu không đưa ra group trong câu lệnh usermod thì nó sẽ xóa tài khoản này khỏi tất cả các group mà nó thuộc về. Dùng -a để ngăn chặn điều này.

5.groupmod

Là câu lệnh để cấu hình một số thông tin của group như GID, tên group, password,..

6. groupdel

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

7. gpasswd

Có thể ủy quyền quản lý một nhóm cho một user khác với lệnh gpasswd. Ví dụ

User quản trị của một nhóm không cần là thành viên của nhóm. họ có thể tự xóa họ ra khỏi nhóm mà không ảnh hưởng đến khả năng của họ.

Thông tin người quản trị của nhóm lưu ở /etc/gshadow

Để xóa tất cả những user quản trị của một nhóm dùng lệnh gpasswd nhưng để giá trị user là chống: gpasswd -A "" <group>

Sudo(wheel) group vs root

Tất cả các user trong group sudo(wheel) đều có thể thực thi lệnh dưới quyền root với lệnh sudo. Lệnh thực thi sau câu lệnh sudo không phải do người dùng đó thực thi mà nó được thực thi bởi tài khoản root, chỉ là không cần mật khẩu của tài khoản root. Ví dụ:

Sử dụng man sudo_root để xem thêm.

Trong khi đó, tài khoản root không cần là thành viên của nhóm sudo vì nó không cần mượn quyền root nữa.