UID là thuật ngữ viết tắt của User Identifier, được hiểu là số nhận dạng nhất định và không thay đổi cho mỗi đối tượng người dùng có trong hệ thống mạng Linux. Bài viết sau đây sẽ giúp bạn hiểu rõ hơn về UID trong Linux và tầm quan trọng của giá trị này.
Những điểm chính
- Định nghĩa UID trong Linux: Hiểu về khái niệm UID (User ID) và vai trò của nó trong hệ thống.
- Tầm quan trọng của UID: Biết vì sao UID quan trọng trong việc phân quyền và quản lý người dùng.
- Nơi lưu trữ UID: Biết UID được lưu ở đâu trong hệ thống Linux (thường là trong file /etc/passwd).
- Cách xác định UID: Học cách kiểm tra UID của một user bằng lệnh Linux.
- Cách tìm UID cho user, group và tài khoản: Biết cách tra cứu UID của user, group và tài khoản trong hệ thống.
- Cách thay đổi UID và tạo user mới với UID: Biết cách thay đổi UID của user hiện có và tạo user mới với UID mong muốn.
- Biết đến Vietnix – Nhà cung cấp dịch vụ VPS linh hoạt và tối ưu hiệu suất.
UID trong Linux là gì?
UID (User Identifier) là một giá trị số nguyên 32 bit duy nhất được gán cho từng tài khoản người dùng có trong hệ thống Linux. UID được hệ thống Linux dùng để xác định, phân biệt và quản lý quyền sở hữu file và một số hoạt động liên quan của mỗi người dùng khác nhau. Ngoài ra, khi hai người dùng được liệt kê chung một UID thì họ đều có quyền truy cập vào tài nguyên của nhau.

UID sở hữu một số công dụng đặc trưng gồm:
- UID được kết nối với GID (Group Identifier) là đại diện cho một nhóm đối tượng cụ thể. Khi dùng cùng lúc UID và GID, hệ thống Linux được phép chỉ định mức truy cập và quyền cho cả nhóm người dùng và cá nhân.
- UID được liên kết với tài khoản của người dùng sẽ thực hiện việc xác minh danh tính khi bạn đăng nhập vào hệ thống Linux.
- Để xác định chủ sở hữu file hoặc thư mục trong hệ thống Linux, bạn có thể truy qua UID liên quan được gán lên file/thư mục đó.
- UID giúp hệ thống xác định quyền và mức độ truy cập đối với hệ thống tài nguyên của Linux.
Trong hệ thống Linux, phạm vi UID được phân chia gồm:
- Người dùng hệ thống: từ 0 đến 999 với người dùng gốc sẽ có UID 0 và lần lượt là các tài khoản cấp hệ thống khác.
- Người dùng thông thường: có UID từ 1000 đến 65535 được gán cho từng đối tượng người dùng thông thường.
Mặt khác, siêu người dùng root là tài khoản sở hữu UID 0, có quyền và chức năng mạnh nhất trong hệ thống Linux. Họ có thể thực hiện mọi hành động gồm sửa đổi file hệ thống, quản lý các tài khoản người dùng và cài đặt phần mềm trên Linux.
Tầm quan trọng của UID trong Linux
Trong mô hình bảo mật Linux, UID được xem là một thành phần quan trọng vì có chức năng giúp xác định quyền truy cập tài nguyên của người dùng trong hệ thống. Đồng thời, UID còn được dùng để quản lý quyền sử dụng tài nguyên, sở hữu file và thực hiện các lệnh đặc quyền cụ thể.
Chẳng hạn như, khi bạn tạo một file trong hệ thống Linux thì file này sẽ thuộc quyền sở hữu của UID của bạn. Điều này cho thấy chỉ những ai có UID khớp mới được quyền chỉnh sửa hoặc xóa file.
Bên cạnh đó, UID còn được dùng để xác định người dùng được phép thực hiện các lệnh đặc quyền và truy cập vào một số tài nguyên mật của hệ thống. Thông thường, người dùng root (UID gốc là 0) mới có quyền thực hiện các thao tác này vì họ được cấp phép sở hữu cấp độ truy cập cao nhất. Riêng với người dùng thông thường, họ chỉ có thể thực hiện một số thao tác cụ thể dựa trên quyền hạn của UID mà họ có.
Ngoài ra, việc hiểu rõ về định nghĩa User Identifier là một điều rất cần thiết đối với các nhà phát triển làm việc với Linux và các quản trị viên hệ thống. Vì khái niệm này sẽ giúp họ quản lý quyền file, tài khoản người dùng và những tác vụ liên quan đến bảo mật hệ thống một cách chi tiết và hiệu quả nhất.

Nơi lưu trữ UID
Trong hệ thống máy tính, file /etc/passwd thường là nơi lưu trữ thông tin tài khoản của người dùng, trong đó có UID.
- file này là nơi chứa danh sách toàn bộ tài khoản của người dùng trên hệ thống, bao gồm cả thư mục gốc, UID, shell đăng nhập tương ứng và cả GID.
- Trong file, mỗi dòng lệnh sẽ bao gồm các trường được ngăn cách nhau bằng dấu hai chấm (“ : “).
- Lệnh cat được dùng để thể hiện nội dung của file với
sudo cat /etc/passwd
.

Trong Linux, file /etc/group là file hệ thống chứa mọi thông tin về các nhóm đối tượng dùng trên hệ thống này. Trong file sẽ là nơi lưu trữ của tên nhóm, GID (mã định danh nhóm) và danh sách các tài khoản người dùng trong từng nhóm.
Cách xác định UID
Để xác định UID, bạn cần hiểu các biểu diễn của mục nhập đầu tiên của đầu ra:

- Giá trị root: Thể hiện tên người dùng.
- Ký tự x: Mật khẩu tài khoản được lưu trữ trong file /etc/shadow.
- Giá trị 0 là UID: Là mã định danh người dùng gốc được gán cho siêu người dùng.
- Giá trị 0 là GID: Là mã định danh nhóm được gán cho siêu người dùng.
- /root: Thư mục gốc của siêu người dùng.
- /usr /bin/zsh: Shell đăng nhập cho siêu người dùng.
- /usr/sbin/nologin: Thể hiện người dùng không được quyền đăng nhập vào hệ thống và bạn có thể thấy lệnh này trong daemon hoặc các tiến trình.
Ngoài ra, UID còn được dùng để tạo sự liên kết giữa các file và quy trình với 03 loại UID phổ biến:
- RUID (UID thực): biểu thị sự khởi tạo của một quy trình hoặc tài khoản người dùng sở hữu. UID thực sẽ tương ứng với tài khoản người dùng thực tế mà quy trình đang hoạt động. RUID được tạo khi quy trình bắt đầu chạy và sẽ không thay đổi trong suốt vòng đời của quy trình đó, đồng thời thể hiện rõ quyền sở hữu của quy trình.
- EUID (UID hiệu lực): được dùng để xác định quyền truy cập và một số quyền nhất định khi một tiến trình ảnh hưởng lên tài nguyên hệ thống. Trong quá trình thực thi một tiến trình, EUID có thể được thay đổi để giảm tạm thời hoặc nâng cao các đặc quyền cho những hoạt động cụ thể.
- Set-user-ID(suid) đã lưu: được dùng cho những trường hợp đặc biệt khi một tiến trình thay đổi tạm thời EUID . UID đã lưu là bản sao của EUID trước mọi thay đổi bất kỳ nào đó diễn ra. Set-user-ID (suid) cho phép tiến trình quay lại EUID ban đầu khi cần thiết và đảm bảo chúng có thể lấy lại các đặc quyền sơ khởi khi thực hiện các thao tác đòi hỏi dùng đến đặc quyền này.
Hướng dẫn cách tìm UID cho user, group và tài khoản
Bạn hoàn toàn có thể tìm thấy UID thông qua nội dung hiển thị của file /etc/passwd. Mặt khác, bạn có thể sử dụng lệnh id để tìm kiếm UID một cách dễ dàng và nhanh chóng hơn.

Ví dụ: Để muốn tìm UID của hosting và vps, bạn cần nhập lệnh:
id hosting
id vps

Mặt khác, bạn có thể sử dụng lệnh grep để trích xuất UID từ file /etc/passwd hoặc tìm kiếm người dùng cụ thể, cách thức nhập lệnh:
grep ‘^username:‘ /etc/passwd.

Ví dụ: Bạn muốn tìm kiếm UID với người dùng tên vps, hãy gõ lệnh:
grep ‘^vps:‘ /etc/passwd

Bên cạnh đó, bạn có thể sử dụng lệnh getent để tìm UID của một người dùng cụ thể. Lệnh này sẽ lấy các thông tin tài khoản của người dùng từ cơ sở dữ liệu hệ thống để thực hiện trích xuất. Để dùng lệnh, bạn cần gõ:
getent passwd vps

Đặc biệt, người dùng có thể sử dụng một công cụ xử lý văn bản và trích xuất dữ liệu là lệnh awk. Cách thức thực hiện:
awk -F: ‘ /^hosting: / {print $3}’ /etc/passwd

Trong đó:
-F
: Giữ vai trò là dấu phân cách trường./^username:/
: Định vị dòng tìm kiếm bằng tên người dùng.
Cách thay đổi UID và tạo user mới với UID cụ thể
Cách thay đổi UID
Trước hết, bạn cần có quyền root thì mới có thể sử dụng lệnh useradd
để tạo một tài khoản tạm thời bằng cách nhập lệnh:
useradd vietnix_vps
Kết quả: Khi chạy lệnh id
với vietnix_vps, nội dung hiển thị như hình bên dưới.

Lúc này, bạn cần xoá tài khoản dos với UID 5122 và gán chúng cho một tài khoản mới. Để loại bỏ người dùng , bạn dùng lệnh userdel
:
sudo userdel -r dos

Khi hoàn tất lệnh, UID sẽ được chỉ định cho tài khoản mới vietnix_hosting là 5122. Ở đây, mình sẽ dùng lệnh usermod:
usermod -u 5122 vietnix_hosting

Cuối cùng, bạn cần đồng bộ các file chạy lệnh id
với cái file của tài khoản cũ qua tài khoản mới với lệnh:
find / -user [UID_of_old_user] -exec chown e.g
Cách tạo tài khoản mới với UID cụ thể
Bạn có thể dùng lệnh useradd
để tạo tài khoản cho người dùng mới và gán cho họ một UID nhất định. Bạn cần gõ lệnh:
sudo useradd -u 1111 vietnix
Khi chạy lệnh id
trên tài khoản vietnix, bạn sẽ thấy UID được gán cho tài khoản mới này là 1111.

Vietnix – Nhà cung cấp dịch vụ VPS linh hoạt và tối ưu hiệu suất
Dịch vụ thuê VPS Vietnix mang đến trải nghiệm vượt trội với ổ cứng SSD/NVMe Enterprise, CPU Intel Xeon và AMD mạnh mẽ, đảm bảo hiệu suất vận hành tối ưu. Công nghệ ảo hóa hiện đại giúp hệ thống hoạt động mượt mà, tận dụng tài nguyên hiệu quả. Hơn nữa, dữ liệu của bạn luôn an toàn với hệ thống sao lưu tự động hàng tuần, dễ dàng khôi phục ngay từ giao diện quản trị tiện lợi. Hỗ trợ nhiều hệ điều hành và tính năng quản trị chuyên sâu, VPS Vietnix là lựa chọn lý tưởng cho mọi nhu cầu sử dụng.
Đặc biệt, VPS Linux Vietnix cung cấp một nền tảng mạnh mẽ với ổ cứng SSD 100%, đảm bảo tốc độ nhanh và khả năng xử lý mượt mà. Hạ tầng máy chủ luôn được nâng cấp với công nghệ tiên tiến, giúp duy trì tính ổn định và hiệu suất cao. Người dùng có toàn quyền kiểm soát, dễ dàng thao tác và tùy chỉnh qua giao diện quản trị trực quan. Dữ liệu luôn được bảo vệ với backup tự động hàng tuần, giúp khôi phục nhanh chóng khi cần. Hệ thống được kích hoạt chỉ trong 5 phút sau thanh toán, giúp bạn sẵn sàng làm việc ngay lập tức mà không phải chờ đợi.
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Tóm lại, hiểu rõ UID trong Linux là một lợi thế lớn cho các nhà quản trị dễ dàng theo dõi và kiểm soát quyền truy cập cũng như các đặc quyền của mỗi tài khoản người dùng trong hệ thống. Từ đó, cách thức quản lý được nâng cao, đảm bảo nguồn tài nguyên hệ thống được sử dụng một cách hiệu quả và bảo mật.