Đây là một bài viết về Linux (Phần 2)
Chào mừng các bạn đến với bài viết khám phá Linux của mình
Trong loạt bài viết Đây là series về Linux, mình sẽ chia sẻ 6 Core Concept của hệ điều hành Linux, bao gồm:
- Kernel
- Shell
- Users & Groups
- Directories & Files
- Permissions
- Process
Mở bài
Core Concept mình sẽ giới thiệu trong phần này (Phần 1 ở đây nhé!):
- Users & Groups ✅
Khi anh em chuyển từ hệ điều hành Windows sang Linux, khái niệm về Users và Groups có thể làm anh em cảm thấy mới mẻ, vì trong Windows, chúng ta thường chỉ cần đăng nhập vào tài khoản rồi code, lướt web, xem phim, vân vân và mây mây mà không cần quan tâm đến Users và Groups. Tuy nhiên, trong Linux, việc quản lý Users và Groups là rất quan trọng
Users
Trong Linux, mặc định mỗi hệ thống sẽ có một user là root. Root user có quyền hạn rất lớn trong hệ thống, bao gồm thay đổi cấu hình, cài đặt phần mềm, và xóa các tệp tin quan trọng. Vì vậy, để đảm bảo an toàn và bảo mật cho hệ thống, chúng ta cần tạo nhiều user khác nhau với các quyền hạn phù hợp là cần thiết
Các account lưu trữ các thông tin như username, password, và UID (User ID). Mỗi user khi được tạo tài khoản thì đồng thời cũng sẽ được tạo một folder riêng trong home directory
Đây là 2 file lưu trữ thông tin user: /etc/passwd, /etc/shadow
/etc/passwd: Lưu trữ thông tin user. Sử dụng cat /etc/passwd
để show nội dung của file
Ví dụ: thangit:x:1001:1001:ThangIT:/home/thangit:/bin/sh
Giải thích:
- thangit: tên đăng nhập
- x: mật khẩu (x nghĩa là bí ẩn, vì mật khẩu không hiển thị ở đây, ! nghĩa là mật khẩu chưa được đặt)
- 1001: user id
- 1001: group id của user (mặc định mỗi user sẽ có một group của nó)
- ThangIT: thông tin của user
- /home/thangit: đường dẫn đến home directory của user đó
- /bin/sh: shell
/etc/shadow: Lưu trữ thông tin mật khẩu. Sử dụng sudo cat /etc/shadow
để show nội dung của file
Ví dụ: thangit:$y$jxxxxxxxx:19518:0:99999:7:30:19538:
Giải thích:
- thangit: tên đăng nhập
- $y$jxxxxxxxx: mật khẩu được mã hóa
- 19518: số ngày tính từ ngày thay đổi mật khẩu cuối cùng tới hiện tại. Lấy từ ngày 1/1/1970 + 19518 = 12/6/2023 (ngày mình đang viết bài này)
- 0: trong bao nhiêu ngày nữa thì mới có thể đổi được mật khẩu lần tiếp theo (mặc định là 0 nếu không được cài đặt)
- 99999: số ngày cần đổi mật khẩu trước khi bị vô hiệu hóa (mặc định là 99999)
- 7: thời gian cảnh báo để người dùng nhận biết rằng mật khẩu sắp hết hạn và cần thay đổi mật khẩu gấp (mặc định là 7)
- 30: số ngày tài khoản không đăng nhập thì sẽ bị vô hiệu hóa (mặc định là để trống)
- 19538: số ngày tài khoản sẽ bị vô hiệu hóa (mặc định là để trống). Lấy từ ngày 1/1/1970 + 19538 = 30/6/2023
Các tác vụ chính quản lý user:
Hành động | Lệnh | Mô tả | Ví dụ |
---|---|---|---|
Kiểm tra user | whoami | Kiểm tra bạn là ai | whoami |
Kiểm tra online | who | Kiểm tra những ai đang online | who |
Kiểm tra id | id username | Kiểm tra id của user và id của những group mà user đang thuộc về | id thangit |
Thêm user | useradd [options] username | Thêm user vào hệ thống | sudo useradd thangit |
useradd -m -d home_path username | Tạo user với home directory tùy chỉnh | sudo useradd -m -d /home/ThangIT thangit | |
useradd -e YYYY-MM-DD username | Cài đặt ngày hết hạn của tài khoản | sudo useradd -e 2023-06-30 thangit | |
useradd -c user_info username | Thêm thông tin của user | sudo useradd -c "Thang - Lap Trinh Vien" thangit | |
Cài đặt password | passwd [options] username | Cài đặt password cho user, các options dùng để tùy chỉnh các thuộc tính (mình có giải thích các thuộc tính trong phần nói về tệp /etc/shadow ở trên) | sudo passwd thangit |
Chỉnh sửa user | usermod [options] username | Chỉnh sửa những thông tin liên quan đến user | |
usermod -c user_info username | Đổi thông tin của user | sudo usermod -c "Thang - IT" thangit | |
usermod -s shell username | Đổi shell của user | sudo usermod -s /bin/bash thangit | |
Xóa user | userdel [options] username | Xóa user ra khỏi hệ thống | sudo userdel thangit |
Thêm user vào group | usermod -a -G groupname username | Thêm user vào group (Có nhiều cách để thêm/xóa user trong group, cách thứ 2 mình giới thiệu ở phần Groups) | sudo usermod -a -G developer thangit |
Xóa user ra group | deluser username groupname | Xóa user vào group (Lưu ý là deluser chứ không phải userdel, 2 lệnh này có nét tương đồng nhưng có vài điểm khác nhau) | sudo deluser thangit developer |
Chuyển đổi user | su [options] username | su (viết tắt của switch user), chuyển từ user hiện tại sang user khác mà không cần phải logout rồi đăng nhập lại | su thangit |
Groups
Linux hỗ trợ việc quản lý groups. Bạn có thể tạo ra nhiều groups và gán các users vào từng group tương ứng. Mặc định, khi tạo một user mới, hệ thống cũng sẽ tự động tạo một group có cùng tên với user đó
Việc sử dụng groups giúp quản lý quyền truy cập vào các tệp tin và thư mục linh động hơn. Thay vì phải cấu hình quyền truy cập cho từng user một cách độc lập, bạn có thể gán quyền truy cập cho một group và tất cả các thành viên trong group đó sẽ được cấp các quyền đã được cài đặt sẵn
Đây là 2 file lưu trữ thông tin group: /etc/group, /etc/gshadow
/etc/group: lưu thông tin group. Sử dụng cat /etc/group
để show nội dung của file
Ví dụ: it:x:1003:thangit
Giải thích:
- it: tên group
- x: mật khẩu (x nghĩa là bí ẩn, vì mật khẩu không hiển thị ở đây, ! nghĩa là mật khẩu chưa được đặt)
- 1003: group id
- thangit: những user nằm trong group này
/etc/gshadow: lưu thông tin mật khẩu group. Sử dụng sudo cat /etc/gshadow
để show nội dung của file
Ví dụ: it:$6$RFMnX/xxxxx/SA.:thangit:thangit,trandinhthang
Giải thích:
- it: tên group
- $6$RFMnX/xxxxx/SA.: mật khẩu được mã hóa
- thangit: trưởng nhóm
- thangit,trandinhthang: danh sách user nằm trong group này
Các tác vụ chính quản lý group:
Hành động | Lệnh | Mô tả | Ví dụ |
---|---|---|---|
Liệt kê group của user | groups | Liệt kê các groups mà bạn thuộc về | groups |
Liệt kê users trong group | getent group groupname | Liệt kê toàn bộ users nằm trong group | getent group developer |
Thêm group | groupadd [options] groupname | Tạo một group mới | sudo groupadd developer |
Chỉnh sửa group | groupmod [options] | Chỉnh sửa group | |
groupmod -n newgroup oldgroup | Đổi tên group | sudo groupmod -n it developer | |
Xóa group | groupdel [options] groupname | Xóa group ra khỏi hệ thống | sudo groupdel it |
Quản lý user, mật khẩu của group | gpasswd [options] groupname | Thêm, xóa user trong group, đổi mật khẩu group,... | |
gpasswd -a username groupname | Thêm user vào group | sudo gpasswd -a thangit developer | |
gpasswd -d username groupname | Xóa user ra khỏi group | sudo gpasswd -d thangit developer | |
gpasswd -M multi_username groupname | Thêm hàng loạt user vào group | sudo gpasswd -M thangit1,thangit2,thangit3 developer |
Kết bài
Vậy là các bạn đã có một cái nhìn tổng quan về Users & Groups trong Linux
Thế giới Linux vẫn còn rất nhiều điều thú vị đang chờ đợi các bạn. Follow mình để cùng nhau khám phá những phần tiếp theo. Cảm ơn các bạn đã đọc
All rights reserved