Quyền trên / dev mục


7

Tôi đang đợi Pi của tôi. Từ việc đọc các hướng dẫn và sách về thực hiện i / o trên Pi, tôi có ấn tượng rằng linux tạo ra các mục trong / dev một cách nhanh chóng, điều này thật tuyệt, nhưng chúng thuộc sở hữu của một ai đó không phải là người dùng pi. Có cách nào để Linux làm cho các mục / dev thế giới có thể ghi hoặc sở hữu bởi pi không?


Bạn nên làm rõ mục đích của bạn là gì khi muốn người dùng pi có quyền ghi trên các nút dev hoặc nếu không thì điều này chỉ đọc giống như một cái gì đó mà ai đó có thể nói nếu họ chỉ học linux nhưng không thực sự hiểu nút dev là gì. Để làm rõ: có thể có một số lý do chính đáng để làm điều này, nhưng nói chung là không có , vì vậy hoặc bạn cần một câu trả lời giải thích tại sao không có, hoặc một câu trả lời khác giải thích cách làm những gì bạn muốn (nhưng cho điều đó, bạn cần phải giải thích những gì bạn muốn làm). Vì vậy, hãy tiết kiệm thời gian cho mọi người, "Tôi không có ý đó", v.v., và làm rõ .
goldilocks

Xin lỗi, tôi nghĩ đó là hiển nhiên; tất cả các ví dụ lập trình làm i / o với các chân được chạy với sudo. Tôi muốn chạy chúng như người dùng pi và không root.
lumpynose

Được chứ. Tôi đã thêm một câu trả lời rồi;)
goldilocks

Câu trả lời:


11

Bạn có thể thay đổi quyền trên một nút thiết bị bằng cách sử dụng chmod, ví dụ:

chmod g+rw /dev/whatever

Điều này thêm quyền đọc / ghi cho nhóm sở hữu 'bất cứ điều gì'. Rất nhiều thứ trong / dev là uid và gid 0 (root chủ sở hữu, root nhóm) nhưng một số thứ có một nhóm riêng như 'video' hoặc 'đĩa', và khi đó là trường hợp, nhóm sẽ đọc ghi quyền trên nút. Vì vậy, trước tiên hãy kiểm tra xem nút bạn quan tâm có giống như vậy không:

stat -c "%A %G" /dev/whatever

Nếu vậy, chỉ cần thêm người dùng pi vào nhóm đó. Nếu nhóm được gọi là "mydevice":

usermod -a -G mydevice pi

Làm xong. Nếu nút không thuộc về một nhóm đặc biệt, bạn có thể tạo một:

addgroup mydevice

Lưu ý về một số distro lệnh này là groupadd. Bây giờ chown thiết bị cho nhóm đó và điều chỉnh các quyền:

chown root.mydevice /dev/whatever
chmod g+rw /dev/whatever

Sau đó thêm người dùng pi vào nhóm. Nhóm mới và thành viên của người dùng pi trong đó là vĩnh viễn (cho đến khi bạn thay đổi lại họ). Tuy nhiên, các nút dev thực sự được tạo khi khởi động, vì vậy mọi thay đổi bạn thực hiện đối với chúng sẽ không tồn tại. Bạn có thể làm cho điều đó vĩnh viễn bằng cách thêm một quy tắc udev . Tạo một tệp văn bản trong /etc/udev/rules.dmydevice.rules (hoặc bất cứ thứ gì có hậu tố .rules) và thêm quy tắc:

KERNEL=="whatever", NAME="%k", GROUP="mydevice", MODE="0660"

Coi chừng sự khác biệt giữa == và = đó. Đây là một hướng dẫn (hơi già) về các quy tắc udev , hầu hết trong số đó dường như vẫn còn hiệu lực.


Cảm ơn vô cùng. Quy tắc Udev âm thanh như giải pháp cho tôi.
lumpynose

1
Tuyệt vời! Đối với những người khác vấp ngã, lệnh có thể là một cái gì đó khác để thêm một nhóm. Đối với linux linux, hóa ra là groupadd . Chỉ cần kiểm tra tài liệu distro của bạn.
Hendy

0

Trong Jessie mới nhất, nhóm mà người dùng cần tham gia là gpio, sudo usermod -a -G gpio <user name>điều kỳ diệu đối với tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.