Phiên bản ngắn: Tôi muốn có một cách để chạy somefunction("username")
và yêu cầu trả lại ID người dùng được liên kết với username
. Ví dụ: somefunction("root")
sẽ trả về 0
.Tôi làm cách nào để có được id người dùng được liên kết với thông tin đăng nhập trên Linux?
Tôi đang viết chương trình máy chủ có khả năng sử dụng các cổng được đánh số thấp, vì vậy nó phải bắt đầu bằng root. Rõ ràng, tôi không muốn nó chạy như root, vì vậy kế hoạch là để cho phép người dùng xác định người dùng chương trình nên chạy như thế nào. Vấn đề là setuid()
yêu cầu ID người dùng và tôi không biết cách tra cứu ID người dùng từ tên đăng nhập. Tôi đã xem unistd.h
và dường như chỉ có các chức năng để tìm thông tin về người dùng hiện tại.
Tôi biết tôi chỉ có thể mở /etc/passwd
, nhưng tôi không muốn khi có ràng buộc là một chức năng cho việc này.
Câu trả lời cho bạn một con cá; đây là cách để cá: 'man -k -s 3 password' và' man man' trong trường hợp bạn không biết lệnh đầu tiên có nghĩa là gì. – msw