Forum » Programiranje » Delo za datotekami in zbirkami v zbirniku...
Delo za datotekami in zbirkami v zbirniku...
andraz2112 ::
LP,
pišem program v zbirniku, ki mi ustvari mapo(spotmp), potem se po kazalu pomaknem na to mapo in znotraj nje ustvarim novo zbirko(spozbirka) in ji nastavim pravice. Problem mi povzroča samo premik v mapo. Sem strace-al program pa piše, da nimam pravic. Ve kdo kaj bi lahko bila napaka?
Prosim za pomoč.
Še koda:
// Polepšal prikaz kode -- moderator
pišem program v zbirniku, ki mi ustvari mapo(spotmp), potem se po kazalu pomaknem na to mapo in znotraj nje ustvarim novo zbirko(spozbirka) in ji nastavim pravice. Problem mi povzroča samo premik v mapo. Sem strace-al program pa piše, da nimam pravic. Ve kdo kaj bi lahko bila napaka?
Prosim za pomoč.
Še koda:
bits 32 section .data spotmp db "spotmp",0 ;ime datoteke spozbirka db "spozbirka",0 ;ime zbirke section .text global _start _start: ; Ustavarjanje zbirke mov eax, 39 ; 39 - ker je 39 za ustvarjanje datoteke mov ebx, spotmp ; ime datoteke mov ecx, 777 int 0x80 ; proži mov eax, 12 ; 12 - ker je 12 za pomik v datoteko mov ebx, spotmp ; ime datoteke int 0x80 mov eax, 8 ; 8 - ker je 8 za ustvarjanje zbirke mov ebx, spozbirka ; ime datoteke mov ecx, 777 int 0x80 mov eax, 15 ; 15 - ker je 15 za dodeljevanje pravic mov ebx, spozbirka ; ime datoteke mov ecx, 640 int 0x80 ;izhod iz programa mov eax, 1 ; v eax damo 1, ker je 1 koda za izhod mov ebx, 0 ; izhod z 0 (return 0;) int 0x80 ; proži
// Polepšal prikaz kode -- moderator
- spremenil: Mavrik ()
Brane2 ::
Verjetno za Winse.
gas ima AFAIK po defaultu obrnjeno sintakso ( ukaz, izvor, ponor), pa tudi operande označuje drugače...
Zajeb: Verjetno za Linux, ker kliče int80h.
Samo da je assmebler kaj v stilu NASM ali kaj podobnega...
gas ima AFAIK po defaultu obrnjeno sintakso ( ukaz, izvor, ponor), pa tudi operande označuje drugače...
Zajeb: Verjetno za Linux, ker kliče int80h.
Samo da je assmebler kaj v stilu NASM ali kaj podobnega...
On the journey of life, I chose the psycho path.
Zgodovina sprememb…
- spremenil: Brane2 ()
andraz2112 ::
Pišem za okolje linux :D
Največji problem je ker je sintaksa OK. Samo s pravicam se nekaj čudnega dogaja, enostavno mi napiše, da nimam pravice za premik v kazalo spotmp in potem mi zbirko ustvari izven mape in napiše da je corrupted. Kr tk neki. :D
Največji problem je ker je sintaksa OK. Samo s pravicam se nekaj čudnega dogaja, enostavno mi napiše, da nimam pravice za premik v kazalo spotmp in potem mi zbirko ustvari izven mape in napiše da je corrupted. Kr tk neki. :D
Zgodovina sprememb…
- spremenil: andraz2112 ()
Brane2 ::
Linux pozna več identitet.
Imaš efektivno, izvorno pa še kaj.
Mogoče bi prej moral spremeniti identiteto...
BTW: A ni v novejših kernelih preferiran način klica syscall namesto in80h, ker je na modernih strojih bistveno hitrejši ?
Imaš efektivno, izvorno pa še kaj.
Mogoče bi prej moral spremeniti identiteto...
BTW: A ni v novejših kernelih preferiran način klica syscall namesto in80h, ker je na modernih strojih bistveno hitrejši ?
On the journey of life, I chose the psycho path.
Zgodovina sprememb…
- spremenil: Brane2 ()
Brane2 ::
Probi dodat vmes klice, da ti sprinta vse identitete, da vidiš kaj se dogaja...
On the journey of life, I chose the psycho path.
Zgodovina sprememb…
- spremenil: Brane2 ()
andraz2112 ::
mkdir("spotmp", 01411) = 0
chdir("spotmp") = -1 EACCES (Permission denied)
creat("spozbirka", 01411) = 3
chmod("spozbirka", 01200) = 0
_exit(0) = ?
tole mi dela, samo v change directory je problem :S Tut pravice imajo neka čudna števila, mogoče bi moral probrati s šestnajstiškim zapisom namesto osmiškega.
chdir("spotmp") = -1 EACCES (Permission denied)
creat("spozbirka", 01411) = 3
chmod("spozbirka", 01200) = 0
_exit(0) = ?
tole mi dela, samo v change directory je problem :S Tut pravice imajo neka čudna števila, mogoče bi moral probrati s šestnajstiškim zapisom namesto osmiškega.
Brane2 ::
tista prva cifra je za posebne atribute. Ne spomnim se točno več kaj je za kaj.
Dve sta sticky- da ti pri vpisu v mapo avtomatsko ponastavi userja ali grup na tistega v mapi- tretja pa za to, da vsak user v mapi lahko dostopa samo datotekam, katerih lastnik je sam. Mogoče je še kakšna.
Videti je, da nimaš dovoljenj. Ti ustvariš mapo, ki jo ti lahko samo bereš, vstopajo pa lahko vanjo vsi iz tvoje grupe oziroma vsi.
Ne vem na pamet, kaj se tu upošteva, to da ti osebno nimaš pravice vstopa, ali se potem preveri, če lahko na podlagi pravic grupe in ostalih še vedno vstopiš. Vsekakor bi moral po kreaciji nastavit dovoljenja mape na recimo 700 ali kaj podobnega...
Dve sta sticky- da ti pri vpisu v mapo avtomatsko ponastavi userja ali grup na tistega v mapi- tretja pa za to, da vsak user v mapi lahko dostopa samo datotekam, katerih lastnik je sam. Mogoče je še kakšna.
Videti je, da nimaš dovoljenj. Ti ustvariš mapo, ki jo ti lahko samo bereš, vstopajo pa lahko vanjo vsi iz tvoje grupe oziroma vsi.
Ne vem na pamet, kaj se tu upošteva, to da ti osebno nimaš pravice vstopa, ali se potem preveri, če lahko na podlagi pravic grupe in ostalih še vedno vstopiš. Vsekakor bi moral po kreaciji nastavit dovoljenja mape na recimo 700 ali kaj podobnega...
On the journey of life, I chose the psycho path.
logout ::
V linux-u rabiš x atribut, če želiš vstopiti v direktorij, razen če si root user. V zgoraj navedenem primeru se zaradi nepopolne kode pravice na direktoriju in datoteki ne ustvarijo z željenimi vrednostmi 777 oz. 640, ampak kar nekaj čudnega. Z ozirom na tale primer sem kodo predelal tako, da je za vsakim "mov ecx, 777" še znak "q". Meni potem normalno deluje, kot si je avtor zamislil.
Poleg tega mislim, da je tisti "mov eax, 15" brezveze, ker se pravice na datoteki naredijo že v prejšnjem koraku pri "mov eax, 8"
L.p., Kloko
Poleg tega mislim, da je tisti "mov eax, 15" brezveze, ker se pravice na datoteki naredijo že v prejšnjem koraku pri "mov eax, 8"
L.p., Kloko
andraz2112 ::
Hvala za vašo pomoč, problem je bil v tem da zbirnik po default-u jemle samo desetiške vrednosti pri dodeljevanju pravic, ko sem pretvoril iz osmiškega zapisa v desetiški je vse steklo normalno.
Še enkrat hvala vsem za pomoč!
LP,
Andraž
Še enkrat hvala vsem za pomoč!
LP,
Andraž
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [ASM] Pomoč, ne najdem napakeOddelek: Programiranje | 1101 (977) | c0dehunter |
» | [nasm] scanfOddelek: Programiranje | 2902 (2629) | Brane2 |
» | [C++ & asm] najhitrejša inicializacija 2D matrikeOddelek: Programiranje | 1792 (1432) | Fury |
» | problem v zbirnikuOddelek: Programiranje | 990 (888) | BigWhale |
» | Programiranje (strani: 1 2 )Oddelek: Programiranje | 6546 (5144) | Thomas |