Olvasni / írni egy soros portra root nélkül?
On február 12, 2021 by adminÍrok egy alkalmazást egy soros portra való olvasáshoz / íráshoz a Fedora14-ben, és remekül működik, ha root-ként futtatom. De amikor Normál felhasználóként futtatom. Nem tudom megszerezni az eszköz eléréséhez szükséges jogosultságokat (/ dev / ttySx). Ez azért nagyon gagyi, mert most nem tudom az Eclipse segítségével hibakeresni a rohadt dolgot.
Megpróbáltam futtatni az Eclipse-t sudo-val, de ez megrontja a munkaterületemet, és még a projektet sem tudom megnyitni. Tehát szeretném tudni, hogy lehetséges-e csökkenteni a / dev / ttySx fájlhoz való hozzáférés követelményeit, hogy bármely normál felhasználó hozzáférhessen hozzá. Lehetséges ez?
Válasz
A soros port elérésének jogát az eszközfájl engedélyei határozzák meg (pl. /dev/ttyS0
). Tehát csak annyit kell tennie, hogy vagy gondoskodjon arról, hogy az eszköz tulajdonosa legyen, vagy (jobb esetben) magát az eszközt birtokló csoportba helyezze, vagy (ha a Fedora támogatja, ami szerintem igen) gondoskodik arról, hogy az eszköz annak a felhasználónak a tulajdona, aki bejelentkezett a konzolon.
Például a rendszeremen (nem a Fedora) a /dev/ttyS0
a root
és a dialout
csoportot, tehát ahhoz, hogy hozzáférhessek a soros eszközhöz, hozzáadnám magam a dialout
csoport:
usermod -a -G dialout MY_USER_NAME
Megjegyzések
Válasz
Sok disztribúció csoporttagságot használ a soros portokhoz való hozzáférés engedélyezéséhez. A Fedora offhand részleteit azonban nem tudom.
Válasz
Azt hiszem, felveheti magát a sudoers fájlba, amely lehetővé teszi, hogy parancs-álnévként parancsokat adjon meg, amelyeket jelszó nélkül is végrehajthatna. A sudoers fájlról kiváló útmutatást találhat az Ubuntu docs fájlban.
Ezután futtathatja az Eclipse rendes működését, és képes lesz végrehajtani ezeket a parancsokat root engedély nélkül.
Válasz
Ez egy régi kérdés, de úgy érzem, hozzájárulhatok hozzá, mivel további lépéseket kellett tennem a kérdésem megoldása érdekében. Erre a kérdésre akkor próbáltam csatlakozni egy micro: bithez a / dev / ttyACM0 porton a Debian 10 használatával.
ls -al /dev/ttyACM0
megjeleníti:
crw-rw-rw- 1 root dialout 166, 0 Jan 5 16:13 /dev/ttyACM0
Ez azt jelzi, hogy miért férhetünk hozzá a porthoz a sudo használatával – a root tulajdonában van. Ez azt is megmutatja, hogy a nem root felhasználó felvétele a tárcsázó csoportba miért teszi lehetővé a hozzáférést anélkül, hogy root lenne. Hozzáadtam felhasználói fiókomat az / etc / group tárcsázási csoporthoz a következő használatával:
sudo usermod -a -G dialout <user>
Még mindig nem tudtam csatlakozni a mikrobithez soros portmonitor használatával root nélkül.
A micro: bit a / media alatt van elhelyezve.
ls -al /media/<user> drwxr-x---+ 2 root root 4096 Jan 5 12:44 <user>
Ez azt mutatja, hogy a könyvtár hogy a micro: bit fel van szerelve, a root tulajdonában van. Meg kellett változtatnom a könyvtár tulajdonosát és csoportját a következőre:
“” “sudo chowner / media / sudo chgrp / media /” “”
Most már csatlakozhatok a mikrohoz : bit egy soros portmonitor használatával sudo használata nélkül.
Válasz
nekem is ez a probléma volt a nap folyamán, kivéve ha felhasználót ad egy dialout csoporthoz, engedélyt kell adnia a felhasználónak a / dev elérésére is. egyszerűen su -> írja be a root jelszót -> chmod -R 777 / A dev -R azt jelenti, hogy rekurzív mód, a mappán belül mindenre ugyanaz lesz az engedély.
Ez a probléma, ezt meg kell tennie minden egyes újraindításkor a számítógépedet, vagy dugd be és ki az eszközt huh !!!
Megjegyzések
-
chmod -R 777 /dev
egy nagyon rossz ötlet. - Egyetértek, ha van erre más javaslat, az nagyszerű lesz
- Kíváncsi vagyok, ki kellett-e jelentkeznie és újra be kell jelentkeznie, mint a hozzászólás az elfogadott válaszhoz? Ez gyakran felkavarja az embereket.
- Rendkívül nem biztonságos az összes felhasználó számára ingyenes hozzáférés biztosítása a / dev / fájlban található mindenhez. Kérjük, ne tegye ezt '.
sudo usermod -a -G dialout $USER
🙂