Puncte:0

cum să lași un utilizator non-prilegde să ruleze un program care necesită permisiuni de root, fără parolă?

drapel au
j0h

Am un program pe care l-am scris și care accesează hardware (fișierele dispozitivului) și necesită permisiuni root pentru a rula. Aș dori ca acest program să fie executabil de un utilizator fără privilegii, fără a fi nevoie de o parolă de root. Am încercat să modific permisiunile cu sudo chmod u+s programName reporniți, dar programul nu va rula sudo ./programName

Îmi amintesc că am făcut asta, acum 12 ani, dar nu-mi dau seama acum. Orice sfaturi?

waltinator avatar
drapel it
Citiți `man sudoers visudo`.
Puncte:2
drapel cn

Dacă setați proprietarul fișierului executabil al programului dvs. la rădăcină cu

sudo chown root /path/to/program/executable

și apoi setați bitul setuid cu

sudo chmod u+s /path/to/program/executable

atunci nu trebuie nici să reporniți și nici să utilizați sudo. Pornirea programului în mod normal după nume îl va executa cu privilegii root. Acest lucru va permite totuși orice utilizator să ruleze programul cu privilegii root, așa că ar trebui să fie foarte sigur că l-ai programat în așa fel încât să nu poată fi abuzat pentru a efectua alte acțiuni decât ai vrut cu privilegii de root.

Primul pas este esențial. Funcția bitului setuid este de a determina rularea programului cu UID-ul proprietarului fișierului. Dacă acel proprietar nu este rădăcină atunci programul nu va avea privilegii de root, chiar dacă îl rulați cu sudo, deoarece bitul setuid suprascrie efectul lui sudo.

Asa de fie rulați programul cu sudo sau setați bitul setuid cu chmod u+s, dar nu ambele.

NB: În loc să rulați programul cu privilegii root, ar putea fi mai bine să setați permisiunile fișierelor dispozitivului pe care le accesează pentru a permite utilizatorului obișnuit care îl rulează accesul necesar.

j0h avatar
drapel au
j0h
dulce, asta funcționează. Îmi dau seama de implicațiile de securitate, dar dispozitivul este un buton. IDK, poate că ar putea fi piratat, dar cred că va fi sigur pentru ceea ce fac. serverul web pe care îl are este o țintă mai probabilă, dar nu este pe internet. Apreciez ajutorul.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.