Kiểm tra quyền truy cập hiện tại: các lệnh whoami
, id
1. Tôi là ai trong hệ thống? Lệnh whoami
Mỗi người dùng Linux vận hành dưới một tài khoản nhất định, tài khoản này có quyền, giới hạn và sự thuộc về nhóm riêng của nó. Trong bài giảng này, bạn sẽ học cách kiểm tra dưới tài khoản nào bạn đang làm việc, bạn có quyền gì và bạn thuộc nhóm nào. Việc biết các thông số hiện tại của người dùng quan trọng trong cả công việc hàng ngày và khi giải quyết các vấn đề liên quan đến bảo mật, quản trị và gỡ lỗi.
Khi bạn làm việc trong hệ thống Linux, biết được tài khoản bạn đang sử dụng tại thời điểm này là điều hữu ích. Ví dụ, nếu bạn tình cờ đăng nhập vào hệ thống dưới tài khoản có quyền nâng cao (root), bạn có thể thực hiện những thay đổi không thể hoàn lại đối với các tệp hệ thống. Để tránh những tình huống như vậy, lệnh whoami
tồn tại.
Cú pháp
whoami
Lệnh này làm gì?
Lệnh whoami
xuất tên của người dùng hiện tại, người mà hệ thống đang hoạt động dưới danh nghĩa. Nó trả lời câu hỏi quan trọng nhất: "Tôi là ai?"
Ví dụ
$ whoami
student
Trong trường hợp này, kết quả student
có nghĩa là bạn đã đăng nhập vào hệ thống với tư cách người dùng có tên student
. Nếu bạn làm việc dưới danh nghĩa người dùng với quyền nâng cao (ví dụ, root
), kết quả sẽ như sau:
$ whoami
root
Tại sao điều này quan trọng?
Hãy tưởng tượng bạn sử dụng một lệnh để xóa tất cả các tệp trong thư mục (ví dụ, rm -rf /important_directory
). Dưới tư cách người dùng thông thường, hệ thống có thể hạn chế bạn nếu bạn không có quyền thích hợp. Nhưng với tư cách người dùng root
, hệ thống sẽ thực hiện lệnh của bạn mà không đắn đo. Lệnh whoami
giúp bạn tránh rơi vào những tình huống không mong muốn như vậy.
2. Nghiên cứu chi tiết thông tin người dùng: lệnh id
Biết tên người dùng của bạn thì tốt thật đấy, nhưng mà nó chưa đủ để hiểu rõ quyền hạn và đặc quyền của bạn trong hệ thống. Để có thêm thông tin chi tiết hơn, có lệnh id
.
Cú pháp
id [người dùng]
Nếu không chỉ định tên người dùng, lệnh id
sẽ hiển thị thông tin về người dùng hiện tại. Nếu bạn chỉ định tên người dùng khác, bạn có thể kiểm tra chi tiết tài khoản của họ.
Những gì lệnh id
hiển thị?
- UID (User ID) — định danh duy nhất của người dùng.
- GID (Group ID) — định danh duy nhất của nhóm chính của người dùng.
- Danh sách nhóm — tất cả các nhóm mà người dùng thuộc về (bao gồm cả nhóm chính).
Ví dụ
$ id
uid=1001(student) gid=1001(student) nhóm=1001(student),27(sudo),1002(developers)
- UID=1001: Đây là định danh duy nhất của người dùng hiện tại (student). Trong các hệ thống Linux, UID của người dùng
root
luôn bằng 0. - GID=1001: Đây là định danh của nhóm chính của người dùng (student).
- Nhóm=1001(student), 27(sudo), 1002(developers): Đây là danh sách các nhóm bổ sung mà người dùng thuộc về. Ví dụ, nhóm
sudo
cho phép sinh viên chạy các lệnh với quyền người dùng được đặc quyền.
Nếu chúng ta chạy lệnh cho một người dùng khác:
$ id user2
uid=1002(user2) gid=1002(user2) nhóm=1002(user2),1001(developers)
Thấy rõ rằng người dùng user2
thuộc về nhóm developers
.
3. Sử dụng UID và GID trong công việc thực tế
Mỗi người dùng và group được gán một mã số nhận dạng riêng (UID và GID tương ứng). Chúng đóng vai trò cực kỳ quan trọng trong hệ thống, thường thay thế tên văn bản của người dùng và group. Tại sao cần điều này?
- Một số tiến trình hệ thống làm việc trực tiếp với mã số nhận dạng để hiệu quả hơn.
- Quyền truy cập vào file và folder không được xác định bằng tên người dùng hoặc group, mà là bằng UID và GID của họ.
- Trong các file cấu hình và nhật ký (ví dụ như
/etc/passwd
), bạn có thể gặp không phải tên người dùng mà là UID của họ.
4. Khám phá các nhóm với groups
Thêm vào đó, bạn có thể sử dụng lệnh groups
để biết người dùng hiện tại thuộc vào những nhóm nào.
Cú pháp
groups [người dùng]
Nếu bạn bỏ qua tên người dùng, bạn sẽ nhận được danh sách các nhóm cho tài khoản hiện tại. Nếu bạn chỉ định tên người dùng, bạn sẽ biết các nhóm của người dùng đó.
Ví dụ:
$ groups
student developers sudo
$ groups user2
user2 developers
5. Làm việc với các lệnh
Giờ thì thử thực hành một chút để nắm vững kiến thức đã học nhé.
Kiểm tra tài khoản hiện tại
- Mở terminal.
Thực hiện lệnh sau:
whoami
Kiểm tra tên tài khoản của bạn.
- Chạy lệnh
sudo su
(bạn sẽ được yêu cầu nhập mật khẩu), sau đó chạy lại lệnhwhoami
để xem bạn đang làm việc dưới tài khoản nào.
Tìm hiểu thông tin về người dùng
Thực hiện lệnh:
Xem UID, GID của người dùng và nhóm mà họ thuộc về.id
Tạo một người dùng mới (nếu bạn có quyền truy cập lệnh
sudo
):sudo adduser testuser
Sau đó thực hiện:
id testuser
Phân tích thuộc tính của nhóm
Thực hiện:
groups
Chú ý xem người dùng của bạn thuộc về những nhóm nào.
Thêm người dùng hiện tại vào một nhóm mới:
sudo groupadd testgroup sudo usermod -aG testgroup $(whoami)
Kiểm tra kết quả:
groups
6. Lỗi phổ biến và những điểm có thể gặp khó khăn
Nhiều bạn mới hay nhầm lẫn giữa
whoami
vàid
. Nhớ nhé:whoami
chỉ hiển thị tên của người dùng hiện tại, cònid
đưa ra thông tin chi tiết hơn về quyền và nhóm.Nếu bạn không có đặc quyền admin (quyền
sudo
), bạn có thể không thêm người dùng vào nhóm hoặc thay đổi tham số của họ được. Trong các trường hợp này, bạn nên liên hệ với admin hệ thống.Lệnh
id
với một người dùng không tồn tại sẽ trả lỗi:$ id nonexistinguser id: ‘nonexistinguser’: không tìm thấy người dùng
Bây giờ bạn đã biết cách kiểm tra xem người dùng hiện tại là ai, họ có quyền gì và làm việc với những quyền truy cập nào. Các lệnh whoami
và id
có vẻ đơn giản, nhưng chúng rất quan trọng để hiểu hệ thống người dùng và quyền truy cập trong Linux. Trong công việc thực tế, bạn sẽ sử dụng chúng thường xuyên để chẩn đoán vấn đề, kiểm tra quyền và cấu hình người dùng.
GO TO FULL VERSION