Baca / Tulis ke Port Serial Tanpa Root?

31

Saya sedang menulis aplikasi untuk membaca / menulis ke / dari port serial di Fedora14, dan berfungsi dengan baik ketika saya menjalankannya sebagai root. Tetapi ketika saya menjalankannya sebagai pengguna biasa saya tidak dapat memperoleh hak istimewa yang diperlukan untuk mengakses perangkat (/ dev / ttySx). Itu agak jelek karena sekarang saya tidak bisa benar-benar men-debug sialan itu menggunakan Eclipse.

Saya sudah mencoba menjalankan Eclipse dengan sudo tetapi merusak ruang kerja saya dan saya bahkan tidak bisa membuka proyek. Jadi saya ingin tahu apakah mungkin untuk menurunkan persyaratan akses untuk menulis ke / dev / ttySx sehingga setiap pengguna normal dapat mengaksesnya. Apakah ini mungkin?

iegod
sumber

Jawaban:

46

Hak untuk mengakses port serial ditentukan oleh izin file perangkat (mis /dev/ttyS0.). Jadi semua yang perlu Anda lakukan adalah mengatur agar perangkat tersebut menjadi milik Anda, atau (lebih baik) menempatkan diri Anda dalam kelompok yang memiliki perangkat tersebut, atau (jika Fedora mendukungnya, yang saya pikir benar) mengatur agar perangkat tersebut milik pengguna yang masuk di konsol.

Misalnya, pada sistem saya (bukan Fedora), /dev/ttyS0dimiliki oleh pengguna rootdan grup dialout, sehingga untuk dapat mengakses perangkat serial, saya akan menambahkan diri saya ke dialoutgrup:

usermod -a -G dialout MY_USER_NAME
Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
Saya akan menerima yang ini karena itu membuat saya di jalan yang benar. Untuk Fedora, perintah usermod digunakan setelah pengguna dibuat. Grup yang dimaksud juga keluar untuk saya: sudo usermod -a -G dialout <username>. Tepuk tangan.
iegod
5
Perhatikan bahwa Anda mungkin harus keluar dan masuk untuk muncul di grup baru
Jan Špaček
1
Oleh permintaan populer: sudo usermod -a -G dialout $USER:-)
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
0

Banyak distribusi menggunakan keanggotaan grup untuk memungkinkan akses ke port serial. Saya tidak tahu detail untuk Fedora begitu saja.

geekosaurus
sumber
0

Saya pikir Anda dapat menambahkan diri Anda dalam file sudoers yang akan memungkinkan Anda untuk menentukan satu set perintah sebagai perintah alias yang Anda akan dapat mengeksekusi tanpa kata sandi. Anda dapat menemukan tutorial yang sangat baik tentang file sudoers di Ubuntu docs .

Anda kemudian dapat menjalankan eclipse secara normal dan itu akan dapat menjalankan perintah-perintah khusus itu tanpa izin root.

Deepak Mittal
sumber
-2

saya punya masalah ini juga kembali pada hari itu, selain menambahkan pengguna ke grup dialout Anda juga perlu memberikan izin bagi pengguna untuk mengakses / dev. cukup su -> masukkan kata sandi root -> chmod -R 777 / dev -R, berarti mode rekursif, semua yang ada di folder itu akan memiliki izin yang sama

masalahnya adalah ini, Anda perlu melakukan itu setiap kali Anda me-reboot komputer Anda atau mencolokkan perangkat Anda ya !!!

Tunu Yolim Ngajilo
sumber
3
chmod -R 777 /devadalah ide yang sangat buruk.
RalfFriedl
Yaah setuju, jika ada saran lain untuk ini, itu akan menjadi luar biasa
Tunu Yolim Ngajilo
Saya ingin tahu apakah Anda perlu keluar dan kembali lagi, seperti dalam komentar pada jawaban yang diterima? Ini sering membuat orang tersandung.
sourcejedi
Memberikan akses gratis ke semua pengguna untuk semua yang ada di dalam / dev / sangat tidak aman untuk dilakukan. Tolong jangan lakukan ini.
unfa