Citat:
Go! X:
Kako da namestim kppd da ne trazi superuser privilegije? Trebam da omogucim i drugima da se konektuju, a mislim da nije preporucljivo da im dam i root pswd...
Probao sam sa chown goran:users /usr/sbin/kppd i chown goran:users /usr/sbin/pppd ali to ne vredi. (dobijem kppd sa zasivljenim - onemogucenim dugmicima)
Šta da radim?
Ajmo malo teorije za pocetak. Ti kada pokrenes svaki program ( proces) on se izvrava pod necijim identitetom. I obicno identitet procesa je isti sa identitetom osobe koja ga je pokrenula. Postoje tri vrste identifikacije za svaki proces, Real uid(to smo stvarno mi; uid je skracenica od user identification), Efektivni uid(to je uid pod kojim vlasnistvom zaista radi program) i Saved uid( Sacuvani uid). i kao sto sam rekao u vecini slucajeva realni i efektivni uid su u vecini slucajeva isti. E sada javio se problem tipa Ja zelim da pokrenem proces ali da vlasnik procesa ne bude vlasnik ko je fizicki pokrenuo proces vec da vlasnik procesa bude vlasnik datoteke. Tipican primer takvog programa je passwd, passwd treba da menja sadrzaj datoteke /etc/shadow gde se nalaze sve kriptovane shifre, i nije dozvoljeno da bilokoji korisnik sem roota ima pristup toj datoteci. Jer ako bi neki drugi korisnik mogao makar da cita datoteku mogao bi da preuzme kriptovanu sifru i metodom grube sile da provali shifru, zato je smisljen taj saved uid, kojim mi kazemo programu da se on izvrasava pod vlasnistvom, vlasnika datoteke.
Tako da u sustini ti trebas da vratis vlasnistvo roota nad programima /usr/bin/kppp i /usr/sbin/pppd i da podesis sacuvani uid, to se radi sa komandom chmod u+s <ime fajla> ili ako vise voli oktvane vrednosti kucao bi npr chmod
4755 <ime fajla>, i na taj nacin ce korisnici starotovati fajl kao da ga je root starotavao.
primeti da kada das komandu ls -l <ime fajla> da na mestu gde bi trebalo da stoji
x za vlasnika datoteke stoji
s sto znaci postoji setovan uid. Evo ti i jedan mali program sa kojim mozes da se igras sa setovanjem uid-a pa da vidis zapravo sta se tu i kako desava
Code:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
main(){
printf("Realni UID= %d , Efektivni UID= %dn",getuid(),geteuid());
}