Tự động chạy một chương trình với quyền root cho GPIO?


7

Tôi có một Raspberry Pi đang chạy Raspbian mà tôi muốn tự động đăng nhập và sau đó tự động chạy một chương trình sử dụng GPIO làm root.

Tôi đã tự động đăng nhập làm việc theo trang web này .

Cách tốt nhất để chạy một chương trình cần GPIO là gì? Có phải nó thêm pingười dùng để sudoers quyền? Hoặc sẽ thêm một dòng với sudo vào dưới cùng của ~/.bashrctập tin? Tôi đoán lần thứ hai để pingười dùng không thể gây ra bất kỳ thiệt hại nào khác?


5
Cá nhân tôi thêm lệnh vào /etc/rc.local. Bằng cách đó, nó chạy khi khởi động, bất kể tự động bật hay không. (Các lệnh trong /etc/rc.localluôn được chạy dưới quyền root, vì vậy không cần thêm sudo).
Gerben

Câu trả lời:


5

Để chạy chương trình của bạn, chỉ cần thêm nó vào ~ / .bashrc bằng sudo, vì người dùng pi đã có quyền sudoers mà không cần xác thực mật khẩu, theo cách này, chương trình sẽ được khởi động khi bạn đăng nhập.

Thay vào đó, những gì bạn có thể làm là tạo một đơn vị dịch vụ, là bạn đang sử dụng arch trên pi của mình, chỉ cần tạo một tệp đơn vị systemd mới trong / etc / systemd / system và sau đó kích hoạt nó, chương trình sẽ được khởi động khi bật máy tính .


0

Thêm một sudo~ / .bashrc sẽ hoạt động tốt, trên bản cài đặt Raspbian tiêu chuẩn, pingười dùng đã có quyền sudoer.

Ngoài ra, nếu nó chỉ là một chương trình duy nhất bạn muốn chạy, bạn có thể bảo nó luôn chạy dưới quyền root.

Bạn làm điều này bằng cách đặt chủ sở hữu là root, sau đó nói với tệp nó luôn được tải như thể chủ sở hữu của tệp đã mở nó.

Hãy nói rằng tôi có một kịch bản được gọi là test.shví dụ:

sudo chown root test.sh
sudo chmod +s test.sh

Lệnh đầu tiên làm cho chủ sở hữu gốc, lệnh thứ hai yêu cầu nó tải như là chủ sở hữu của tệp.

Nếu bây giờ chúng ta chạy lệnh bình thường thì nó sẽ chạy như người dùng root bất kể ai đã khởi động nó hay ở đâu (không sudobắt buộc).


Có, thêm một sudo test.shtrong .bashrclàm việc. Vì một số lý do, hai lệnh thứ hai dường như không có, mặc dù chương trình đang chạy tốt sau khi thay đổi thành root sudo suvà cũng được liệt kê là sở hữu roottrong ls -l.
mirams

Những quyền nào đã ls -lcho thấy (ví dụ -rw-r--r--)?
PiBorg

Nó cho thấy-rwxr-xr-x 1 root pi
mirams

Bit dính không được thiết lập (biểu tượng đầu tiên nên skhông -), có lẽ tôi đã sai lệnh. Tôi đã thay đổi thứ tự và cú pháp để khớp với tập lệnh thiết lập mà tôi đã viết từ lâu cho một thứ khác.
PiBorg

Vẫn không có may mắn với các lệnh mới mà tôi sợ
mirams
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.