next up previous contents
Next: Egy összetettebb példa: Up: Rendszerhívások Previous: INPUT/OUTPUT eszközöket vezérlo

Egyéb rendszerhívások

Ebbe a csoportba azok a rendszerhívások kerültek, amelyeket érdemes megismerni, de a fent említett csoportok közül egyikbe sem tartoznak olyan szorosan. Az itt ismertetendo rendszerhívások a következok: chmod(), chown(), chgrp(), getuid(), getgid(), geteuid(), getegid(), setuid(), setgid() és a time().

A chmod() rendszerhívással lehet beállítani (ill. átállítani) egy fájl védelmi bitjeit. Az elso paramétere a fájl neve, a második paraméter pedig a védelmi bitek új értéke. A chown() rendszerhívással lehet egy fájl tulajdonosának az azonosítóját megváltoztatni. A rendszerhívás elso paramétere a fájl neve, második paraméter pedig az új tulajdonos felhasználói azonosítója. A harmadik paraméter az új tulajdonos csoport-azonosítója. (Ezt a rendszerhívást csak a fájl "jelenlegi" tulajdonosa vagy a root (a szuperfelhasználó) hajthatja végre.)

A getuid(), getgid() rendszerhívás a programot futtató felhasználó azonosítóját illetve csoport-azonosítóját adja vissza eredményül. A geteuid() ill. getegid() rendszerhívás hasonlóan muködik, kivéve ha egy setuid bittel ellátott programban hajtják végre. Ekkor annak az uid-jét ill. gid-jét adja vissza eredményül, akié a futtatható program volt (pontosabban: az effektiv felhasználói azonosítót és csoport-azonosítót adja vissza).

A setuid() és setgid() rendszerhívásokkal a folyamathoz tárolt felhasználói azonosítót és csoport-azonosítót lehet átállítani. A szuperfelhasználó (illetve az a folyamat, amely setuid root módon lett elindítva) bármilyen felhasználói- és csoport-azonosítóra beállíthatja a folyamathoz tárolt felhasználói- és csoport-azonosító értékeket, de ez visszafele nem megy. Egy "mezei" felhasználói folyamat nem tudja a tárolt azonosítókat megváltoztatni.

A time() rendszerhívásnak egy paramétere van (de annak értéke NULL-pointer is lehet). A rendszerhívás eredményül visszaadja az 1970 január 1-e óta eltelt másodpercek számát. Ha a paraméter nem NULL- pointer, akkor ezt az értéket beírja a paramétere által mutatott memóriacímtol.



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996