Hướng dẫn quản lý Người dùng (user) và Nhóm (group) trong Linux
Trong phần trước chúng ta đã tìm hiểu về các câu lệnh lọc dữ liệu file trong Linux.Tiếp theo chúng ta sẽ tìm hiểu về cách quản lý người dùng và nhóm trong Linux nhé!
Người dùng (user) và nhóm (group) là hai khái niệm quan trọng trong hệ thống Linux. Người dùng là các tài khoản cá nhân được tạo ra trên hệ thống, mỗi người dùng có một tên đăng nhập và mật khẩu riêng. Họ định danh cá nhân và có quyền hạn cụ thể trong hệ thống. Nhóm là một cách để tổ chức người dùng thành các tập hợp. Mỗi người dùng có thể thuộc một hoặc nhiều nhóm khác nhau. Nhóm giúp quản lý và chia sẻ tài nguyên một cách hiệu quả, cũng như xác định quyền truy cập trong Linux.
1. Quản lý user trong Linux
1.1 User là gì?
- User là tài khoản mà người dùng được cung cấp để thao tác với hệ thống.
- Mỗi tài khoản sẽ có quyền làm gì và không được làm gì.
- Tài khoản có quyền cao nhất là root và root có quyền làm tất cả.
1.2File “/etc/passwd”
- Là file văn bản chứa thông tin về các tài khoản user trên máy.
- Mỗi user đều có thể đọc tập tin này nhưng chỉ có user root mới có quyền thay đổi.
- Cấu trúc file: trong file /etc/passwd được chia làm 4 trường chính và mỗi trường cách nhau bởi dấu hai chấm.
Giải thích:
- 1 - Tên user ( login name )
- 2 - Mật khẩu group đã được mã hóa ( vì có file /etc/shadow ) nên mặc định ở đây là x
- 3 - User ID ( uid )
- 4 - Group ID ( gid )
- 5 - Tên mô tả người sử dụng ( comment )
- 6 - Thư mục home của user ( thường là /home/user_name )
- 7 - Loại shell sẽ hoạt động khi user login , thường là /bin/bash
- Khi tạo user thì số UID sẽ được tự động tạo từ UID_MIN và UID_MAX nằm trong file /etc/login.defs và để xem được user tạo ra thì ta tìm kiếm dòng có chỉ số UID nằm trong đó.
[root@localhost ~]# grep -E '^UID_MIN|^UID_MAX' /etc/login.defs UID_MIN 1000 UID_MAX 60000 [root@localhost ~]# |
1.3 Tạo, sửa, xóa user
Ta có thể tạo user bằng lệnh “useradd”
useradd [options] [tên user] |
- Options:
- -m: đồng thời tạo thư mục ở home
- -d: tên thư mục tạo ở home
- -c: thêm mô tả về thư mục đó
Ta có thể xóa user bằng lệnh ”userdel”
userdel [options] [tên user] |
- Options:
- -m : dùng để xóa user
- -r : xóa user đồng thời xóa cả file mà user đó tạo ra
Ta có thể chỉnh sửa user bằng lệnh “usermod”
usermod [options] [tên user] |
- options
- -G: Thêm user vào group
- -c : thay đổi thông tin người dùng
- -e : thiết lập ngày hết hạn cho người dùng
- -L : Khóa tài khoản
- -U : mở khóa tài khoản
- -s : thay đổi shell script cho user usermod -s /usr/bin/thanhquang thanhquang
Ta có thể tạo hoặc thay đổi password cho user bằng lệnh “passwd”. Chỉ có quyền root mới có thể thực hiện việc này.
passwd [user-name] |
1.4 Chuyển đổi user
Khi ta muốn chuyển từ user này sang user khác ta có thể sử dụng lệnh “su” hoặc “sudo su”
sudo su[user-name] |
Nhưng không phải user nào cũng có quyền sudo để thực hiện chuyển đổi tài khoản. Để có quyền sudo thì user đó phải nằm trong group “wheel” với centos và group “sudo” đối với ubuntu.Bạn có thể tham khảo lệnh sau:
usermod -aG wheel thanhquang |
hoặc:
usermod -aG sudo thanhquang |
2. Quản lý group trong Linux
2.1Group là gì?
- Group là một nhóm tập hợp các user.
- Mỗi group có 1 tên duy nhất và 1 mã định danh duy nhất (gid).
- Khi tạo ra 1 user ( không dùng option -g ) thì mặc định 1 group mang tên user được tạo ra.
2.2 File “/etc/group”
- Là tập tin văn bản chứa thông tin về các group trên máy.
- Mỗi user đều có quyền đọc tập tin này nhưng chỉ có user root mới có quyền thay đổi.
- Cấu trúc file:
Giải thích:
- 1 - Tên group
- 2 - Mật khẩu group đã được mã hóa (vì có file /etc/gshadow) nên mặc định ở đây là x
- 3 - Mã nhóm (gid)
- 4 - Danh sách các user nằm trong nhóm
2.3 Các lệnh quản lý group
Để tạo 1 group ta sử dụng lệnh “groupadd”.
groupadd [group_name] |
Để tạo mật khẩu cho group ta sử dụng lệnh “gpasswd”.
gpasswd[group_name] |
Để sửa lại thông tin về group ta sử dụng lệnh “groupmod”.
groupmod [options] [group_name] |
- Options
- g [gid] : sửa lại mã nhóm ( gid )
- n [group_name] : sửa lại tên group
Để xóa group ta sử dụng lệnh “groupdel”.
groupdel [group_name] |
3. Các quyền quản lý trong linux
Trên thực tế mọi tập tin sẽ đều có chủ sở hữu, nó sẽ bao gồm user và group sở hữu tập tin đó.
Ta có thể sử dụng lệnh “ls -lh” để xem.
[root@localhost ~]# ls -lh total 8.0K -rw-------. 1 root root 1.3K Jan 19 03:54 anaconda-ks.cfg -rwxr-xr-x. 1 root root 2.1K Jan 21 23:37 cmdlog.sh [root@localhost ~]# |
3.1 Các quyền của file
Tên quyền | giá trị(thập phân) | Mục đích sử dụng |
r(read) | 4 | Đây là quyền được đọc file. Lệnh cat là ví dụ của quyền này |
w(write) | 2 | Đây là quyền được chỉnh sửa. Lệnh vi là ví dụ của quyền này |
x(execute) | 1 | Đây là quyền thực thi. Khi ta chạy bash cần quyền này |
3.2 Các lệnh thay đổi quyền của file
Mỗi file sẽ đều có các quyền của mình và để xem được các quyền đó ta có thể sử dụng câu lệnh “ls -lh”.
Ta nhận thấy rằng mỗi file sẽ quy định quyền cho 3 chủ thể là: user, group và other (user khác) được sắp xếp theo đúng thứ tự trên.
Ví dụ: file ssh_config thì chủ sở hữu file có quyền đọc và sửa, đối với group và other chỉ có quyền đọc.
Để thay đổi chủ sở hữu file ta dùng lệnh “chown”
chown [tên user mới] [tên file] |
Để thay đổi group mới của file ta có dùng lệnh “chgrp”
chgrp [tên group mới] [tên file] |
Để có thể thay đổi các quyền của file ta có thể sử dụng lệnh “chmod”
chmod [u/g/o][+/-][r/w/x] [tên file] |
4. Một số lưu ý cần nhớ
Chỉ có quyền root mới có thể thực hiện câu lệnh “su”, còn các user khác muốn thực lệnh “su” thì đều cần quyền sudo.
Sự khác biệt giữa “su” và “su -”
- Lệnh “su” sẽ giúp chúng ta chuyển đổi user mà vẫn giữ nguyên vị trí đang đứng trước đó.
- Lệnh “su -” sẽ giúp chúng ta chuyển đổi user và đưa luôn chúng ta đến vị trí thư mục “/home/” của user đó.
Theo mặc định khi tạo ra các user thì nó sẽ không có quyền sudo nếu muốn user có quyền sudo thì phải thêm user đó vào group “wheel” đối với CentOS và group “sudo” đối với Ubuntu. Chỉ có quyền root mới có thể thực hiện điều này.
Kết luận
Quản lý group và user trong Linux là điều rất quan trọng. Khi thực hiện thao tác với user hay group, phải chắc chắn rằng bạn đang làm chính xác vì nếu như ai đó biết được tài khoản và mật khẩu của bạn thì họ có thể chiếm quyền kiểm soát thiết bị, gây ra hậu quả nghiêm trọng. Cùng trở lạisuncloud.vnđể cập nhật thêm các kiến thức bổ ích khác về hệ điều hành Linux trong phần sau nhé.