Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Montare parchet in balcon

Exista doar ... si restul

Instagram - sunt eu batran, sau...

Regim utilizare HDD Ubuntu
 La mulți ani @yanni17!

La mulți ani @Kokoshmare!

Mai exista la voi in oras strandu...

Bon Jovi - Living Proof
 Problema card reader Sandisk

Recomandare acumulator 26650

Accident nerespectare viteza

Consumul in bord VS consumul la p...
 PC-ul nu booteaza

Coada dronei de lupta Fioroasa

Taxa RAR pt motor 2.0 diesel Euro...

Radio Aftermarket Golf 5
 

[HELP] Privilegii ?

- - - - -
  • Please log in to reply
5 replies to this topic

#1
capdeguma

capdeguma

    Member

  • Grup: Members
  • Posts: 283
  • Înscris: 17.06.2003
salut,
am o intrebare:
Cum pot sa dau ca admin(root) privilegii pt un utilizator ca sa ii mearga functia "ioperm" - deschide porturi(paralel etc..) ?
Ce comanda tre sa dau ... sa ii dau voie sa scrie la un port de asta ?
Astept raspunsul cat mai repede, IMI TREBE PT UN PROIECT SI SUNT CAM DISPERAT :confused:
thx.

PS inca o intrebare cu ce comanda aflu ce versiune de kernel ruleaza pe masina linux ? :OK:

#2
onyx

onyx

    Member

  • Grup: Members
  • Posts: 929
  • Înscris: 12.10.2002

Quote

Originally posted by capdeguma

PS inca o intrebare cu ce comanda aflu ce versiune de kernel ruleaza pe masina linux ? :OK:



uname -a

#3
WhoAmI

WhoAmI

    Member

  • Grup: Members
  • Posts: 332
  • Înscris: 15.01.2003
uname -a :)

din cite cred, nu poti sa-i dai drepturi, tre sa fie root. Daca vrei sa foloseasca paralelul normal (ca fisier) e de ajuns sa-i dai drepturi la /dev/lp0. Pentru alte chestii fa-l root :D

poti sa zici mai exact ce vrei sa faci?

A, in principiu poti sa scrii un stub suid root, care sa faca ioperm, drop priv, exec programul respectiv. S-ar putea sa mearga.

#4
capdeguma

capdeguma

    Member

  • Grup: Members
  • Posts: 283
  • Înscris: 17.06.2003
trebuie sa aprind niste leduri la portul paralel (asa de inceput :P)

Quote

#define BASEPORT 0x378 /* lp1 */  
/* Get access to the ports */
if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}
outb(255,BASEPORT);
Am incercat cu /dev/lp0 ca root dar nu merge pur si simplu nu se aprinde nimic si ramane asa agatat, doar cu Ctrl+C  il mai scot...

Quote

int handle=open("/dev/lp0",O_RDWR);  
if (handle<0) // nu poate deschide device-ul  
{  
printf("lp0 nu este suportat de kerneln");  
return 1;  
}  
printf("%dn", res=write(handle,(char*)"1",1));  
if (res != 1) // nu a scris toate datele  
{  
printf("Eroaren");  
return 1;  
}  
close(handle);  
Cu ioperm merge doar ca root si as vrea sa pot totusi si ca user. Daca poti sa=mi spui cam cum se face ar fi ok. :)
thx.

#5
MagicB

MagicB

    Junior Member

  • Grup: Members
  • Posts: 35
  • Înscris: 27.07.2002
cel mai bun sfat pe care pot sa ti-l dau e:
man sudo
de acolo de lamuresti tu ce si cum tre sa faci.

#6
WhoAmI

WhoAmI

    Member

  • Grup: Members
  • Posts: 332
  • Înscris: 15.01.2003
Deci ce incercam sa zic suna cam asa:

#define BASEPORT 0x378 /* lp1 */
/* Get access to the ports */
if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}
/* asta a fost copy paste de la tine */
setuid(1000); /* treci aici UID-ul numeric al userului */
execl("/home/user/src/program", "/home/user/src/program", NULL);

ideea e ca ai UID si calea catre program hard-coded. Eventual te mai joci cu environmentul, dar ai grija ce faci.

Programul asta il faci suid root (chown root, chmod u+s), si userul il executa in loc de programul lui.

Ce face: ii da ioperm, renunta la privilegiile de root, executa programul lui (ca user normal, dar cu iopermul dat de tine). N-ar strica si un setgid() ;)

In principiu tre sa ai mare grija sa nu executi nimic in plus din stubul asta, sa ignori linia de comanda, etc. man setuid, setgid, execl pentru detalii, si succes.

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate