Tìm hiểu về UID trong Linux


Bài viết dưới đây sẽ cùng bạn tìm hiểu về UID:

– nó mang ý nghĩa gì?

– tìm nó ở đâu?

– và nên quản lý nó như thế nào cho hiệu quả?

1>  UID là gì?

UID (viết tắt của User Identification) là môt con số nguyên dương duy nhất được hệ điều hành Linux gán cho mỗi tài khoản người dùng. Hệ thống sẽ sử dụng UID để nhận diện user, trái với con người phân biệt các tài khoản qua Username.

2>  Xem các UID ở đâu?

File /etc/passwd lưu trữ thông tin về tất cả user, mỗi user nằm trên 1 dòng bao gồm các trường: Username, Password dạng mã hóa (nếu sử dụng shadow password thì trường này được thay bằng ký tự x), UID, GUID, Gesco (chứa thông tin phụ như Full name, Phone number..), Home directory, Shell mà user sẽ sử dụng.

Bạn sử dụng lệnh cat để đọc file này:

$ cat /etc/passwd

Như hình trên thì trường thứ 3 chính là giá trị UID.

3>   Các UID mang ý nghĩa đặc biệt

Từ phiên bản Linux Kernel 2.4 trở lên, UID là số nguyên 32-bit không dấu (vùng giá trị từ 0 -> 4.294.967.296). Tuy nhiên, bạn nên đặt UID trong khoảng 0 -> 65.534 để đảm bảo tính tương thích với các hệ thống sử dụng Linux Kernel phiên bản thấp hơn 2.4 hoặc với các filesystem chỉ hỗ trợ UID có chiều dài 16-bit.

Một vài UID đặc biệt và dành riêng:

– UID=0: được gán cho tài khoản root – người dùng có đặc quyền cao nhất trong Linux.

– UID=65534: thường được dành riêng cho tài khoản nobody –  người dùng không có bất cứ đặc quyền quản trị nào. UID này thường được dành cho các cá nhân truy cập từ xa tới hệ thống qua FTP hay HTTP.

– UID trong khoảng 1->99: thường được dành riêng cho các tài khoản hệ thống đặc biệt, thường được gọi là các pseudo-users, như wheel, daemon, lp, operator, news, mail, httpd, sshd

Đây đều là các tài khoản quản trị nhưng lại không nắm giữ tất cả các đặc quyền như root, chúng chỉ đảm nhận một vài công việc chuyên biệt nào đó như: daemon chỉ dùng để quản lý các dịch vụ (start, stop, resume, restart…), httpd cho Web server Apache…

Dĩ nhiên các tài khoản này có nhiều quyền hạn hơn các người dùng bình thường (normal user).

4>  Quản lý các UID

  • Trên 1 số bản phân phối Linux (Distro), các normal user nhận UID lớn hơn 100. Ví dụ, Redhat gán UID cho normal user bắt đầu từ 500, Debian bắt đầu từ 1000. Chính vì sự khác nhau về cách gán UID này, bạn nên tự đặt UID cho các user nếu trong mạng sử dụng nhiều Distro.
  • Ngoài ra, bạn cũng nên dành riêng 1 dải UID cho các tài khoản cục bộ (local account) như 1000-9999, 1 dải khác cho các người dùng truy cập từ xa tới hệ thống qua mạng (remote user) như 10000-65534 để dễ bề quản lý cũng như giúp rà soát các hoạt động của người dùng trong các file log…
  • Cuối cùng, trái với những ý nghĩ truyền thống rằng UID phải là duy nhất cho mỗi người dùng trong cùng 1 hệ thống, bạn vẫn có thể để UID trùng nhau cho các tài khoản có Username khác nhau. Tuy nhiên, việc UID không còn là độc nhất sẽ gây ra các nguy cơ về bảo mật, ví dụ, nếu ai đó thay đổi UID của họ về 0 thì quyền hạn của họ sẽ ngang bằng với root! (các user có cùng UID sẽ có quyền hạn ngang nhau).

Hy vọng bài viết này đã mang lại cho bạn những thông tin hữu ích giúp bạn hiểu rõ hơn bản chất của UID trong Linux.

–manthang.

One comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s