it-swarm-vi.com

Đọc / ghi vào cổng nối tiếp mà không cần root?

Tôi đang viết một ứng dụng để đọc/ghi vào/từ một cổng nối tiếp trong Fedora14 và nó hoạt động rất tốt khi tôi chạy nó dưới quyền root. Nhưng khi tôi chạy nó như một người dùng bình thường, tôi không thể có được các đặc quyền cần thiết để truy cập thiết bị (/ dev/ttySx). Điều đó thật tồi tệ bởi vì bây giờ tôi thực sự không thể gỡ lỗi thứ chết tiệt đó bằng cách sử dụng Eclipse.

Tôi đã thử chạy Eclipse với Sudo nhưng nó làm hỏng không gian làm việc của tôi và tôi thậm chí không thể mở dự án. Vì vậy, tôi muốn biết liệu có thể hạ thấp các yêu cầu truy cập để ghi vào/dev/ttySx để bất kỳ người dùng bình thường nào cũng có thể truy cập được không. Điều này có thể không?

34
iegod

Quyền truy cập cổng nối tiếp được xác định bởi các quyền của tệp thiết bị (ví dụ: /dev/ttyS0). Vì vậy, tất cả những gì bạn cần làm là sắp xếp để thiết bị thuộc sở hữu của bạn hoặc (tốt hơn) đặt bạn vào nhóm sở hữu thiết bị hoặc (nếu Fedora hỗ trợ thiết bị mà tôi nghĩ là nó) sắp xếp cho thiết bị thuộc về người dùng đã đăng nhập trên bảng điều khiển.

Ví dụ: trên hệ thống của tôi (không phải Fedora), /dev/ttyS0 được sở hữu bởi người dùng root và nhóm dialout, vì vậy để có thể truy cập thiết bị nối tiếp, tôi sẽ tự thêm mình vào nhóm dialout:

usermod -a -G dialout MY_USER_NAME

Nhiều bản phân phối sử dụng tư cách thành viên nhóm để cho phép truy cập vào các cổng nối tiếp. Mặc dù vậy, tôi không biết chi tiết về Fedora.

0
geekosaur

Tôi nghĩ rằng bạn có thể tự thêm mình vào tệp sudoers, điều này sẽ cho phép bạn chỉ định một nhóm lệnh dưới dạng bí danh lệnh mà bạn có thể thực thi mà không cần mật khẩu. Bạn có thể tìm thấy một hướng dẫn tuyệt vời về tệp sudoers trong tài liệu Ubunt .

Sau đó, bạn có thể chạy Eclipse bình thường và nó có thể thực thi các lệnh cụ thể đó mà không cần quyền root.

0
Deepak Mittal