Lukea / kirjoittaa sarjaporttiin ilman juuria?
On helmikuu 12, 2021 by adminKirjoitan sovellusta lukemaan / kirjoittamaan sarjaporttiin Fedora14: ssä, ja se toimii hyvin, kun suoritan sen pääkäyttäjänä. Mutta kun Suoritan sitä tavallisena käyttäjänä. En voi saada laitteen käyttöoikeuksia (/ dev / ttySx). Se on kovaa, koska nyt en voi oikeastaan debugata pirun asiaa käyttämällä Eclipseä.
Olen yrittänyt suorittaa Eclipseä sudolla, mutta se turmelee työtilan ja en voi edes avata projektia. Joten haluaisin tietää, onko mahdollista alentaa pääsyvaatimuksia kirjoittaa / dev / ttySx: ään, jotta kaikki normaalit käyttäjät voivat käyttää sitä. Onko tämä mahdollista?
Vastaus
Sarjaportin käyttöoikeus määräytyy laitetiedoston oikeuksien perusteella (esim. div id = ”bb6ba7dc28″>
). Joten sinun tarvitsee vain järjestää laitteen omistaminen tai (parempi) sijoittaa itsesi laitteen omistavaan ryhmään tai (jos Fedora tukee sitä, mikä mielestäni on) järjestää laitteen kuuluvat käyttäjälle, joka on kirjautunut sisään konsoliin.
Esimerkiksi järjestelmässäni (ei Fedorassa) /dev/ttyS0
omistaa käyttäjä root
ja ryhmä dialout
, joten voidakseni käyttää sarjaliitäntää, lisäisin itseni ryhmään dialout
ryhmä:
usermod -a -G dialout MY_USER_NAME
kommentit
Vastaa
Monet jakelut käyttävät ryhmäjäsenyksiä salliakseen pääsyn sarjaportteihin. En kuitenkaan tiedä Fedoran offhand-yksityiskohtia.
Vastaa
Luulen, että voit lisätä itsesi sudoers-tiedostoon, joka Voit määrittää joukon komentoja komentoaliasiksi, jotka pystyt suorittamaan ilman salasanaa. Löydät erinomaisen opastuksen sudoers-tiedostosta Ubuntu-asiakirjoista .
Voit sitten suorittaa Eclipse-ohjelman normaalisti, ja se pystyy suorittamaan kyseiset komennot ilman pääkäyttäjän oikeuksia.
Vastaa
Tämä on vanha kysymys, mutta mielestäni voin osallistua, koska minulla oli uusi askel ongelmani ratkaisemiseksi. Tulin tähän kysymykseen yrittäessäni muodostaa yhteyden mikro: bittiin portissa / dev / ttyACM0 Debian 10: n avulla.
ls -al /dev/ttyACM0
näyttää:
crw-rw-rw- 1 root dialout 166, 0 Jan 5 16:13 /dev/ttyACM0
Tämä osoittaa, miksi pääsemme porttiin sudolla – sen omistaa root. Se osoittaa myös, miksi ei-root-käyttäjän lisääminen valintaikkunaryhmään sallii pääsyn olematta pääkäyttäjä. Lisäsin käyttäjätilisi kansion ryhmään hakemistossa / etc / group käyttämällä:
sudo usermod -a -G dialout <user>
En vieläkään voinut muodostaa yhteyttä mikrobitiin käyttämällä sarjaporttimonitoria olematta pääkäyttäjä.
Micro: bit on asennettu tiedostoon / media:
ls -al /media/<user> drwxr-x---+ 2 root root 4096 Jan 5 12:44 <user>
Tämä osoittaa, että hakemisto että micro: bit on asennettu, omistaa root. Minun oli vaihdettava tämän hakemiston omistaja ja ryhmä seuraaviksi:
”” ”sudo chowner / media / sudo chgrp / media /” ””
Nyt voin muodostaa yhteyden mikroon : bitti sarjaporttimonitorilla ilman sudoa.
Vastaa
Minulla oli tämä ongelma myös päivällä, lukuun ottamatta Kun lisäät käyttäjän dialout -ryhmään, sinun on myös annettava tälle käyttäjälle lupa käyttää / dev-sovellusta. yksinkertaisesti su -> kirjoita juurisalasana -> chmod -R 777 / dev -R tarkoittaa rekursiivista tilaa, kaikilla kansiossa on samat oikeudet
ongelma on tämä, sinun on tehtävä se joka kerta kun käynnistät uudelleenkäynnistyksen tietokoneesi tai kytke laitteeseen virta ja virta huh !!!
Kommentit
-
chmod -R 777 /dev
on erittäin huono idea. - Yaah samaa mieltä, jos tälle on muita ehdotuksia, se on hieno
- ihmettelen, tarvitsiko sinun kirjautua ulos ja takaisin sisään, kuten kommentoi hyväksyttyä vastausta? Tämä ajaa ihmisiä usein ylös.
- Kaikille käyttäjille vapaan pääsyn / dev / -sisältöön tekeminen on äärimmäisen vaarallista. Älä tee ' tätä.
sudo usermod -a -G dialout $USER
🙂