Avatar billede hemmelig_ninja Nybegynder
27. august 2003 - 10:44 Der er 8 kommentarer og
2 løsninger

Autostarte program med anden bruger end root i boot'en

Som min overskrift antyder vil jeg gerne være i stand til at starte et program i min boot med en anden bruger end root. Ligesom apache har en bruger, og man kan få den til at starte med denne bruger i booten. Jeg vil ikke bruge crontab da jeg skal kunne lukke programmet i længere tid af gangen uden at det starter automatisk. Hvis jeg i min bootfil skriver at den skal starte mit program, startes det som root, og det er jeg ikke interesseret i.

tak på forhånd.
Avatar billede mfalck Praktikant
27. august 2003 - 10:51 #1
dette er fra man-siden til named som laver tricket:

setuid() to user after completing privileged operations, such as
              creating sockets that listen on privileged ports.

              Note:  On Linux, named uses the kernel's capability mechanism to
              drop all root privileges except the ability to bind() to a priv-
              ileged  port  and  set  process resource limits.  Unfortunately,
              this means that the -u option only works when named  is  run  on
              kernel  2.2.18  or  later, or kernel 2.3.99-pre3 or later, since
              previous kernels did not allow privileges to be  retained  after
              setuid().
Avatar billede hemmelig_ninja Nybegynder
27. august 2003 - 11:00 #2
Skal det compiles ind i programmet? Når jeg tager en man af setuid står der at man skal include forskellige ting...?
er der ikke en nem kommando som gør det samme som su bare i startop scriptet?
Avatar billede hemmelig_ninja Nybegynder
27. august 2003 - 11:04 #3
Jeg tror jeg har fundet ud af det. Man kan bare skrive su "user" -c "commando"
WEee :)
Avatar billede hemmelig_ninja Nybegynder
27. august 2003 - 11:24 #4
Ja det fungerede. Jeg giver dig de 20 af pionts'ne.
Avatar billede hemmelig_ninja Nybegynder
27. august 2003 - 11:25 #5
hvis du ellers vil skrive et svar :)
Avatar billede mfalck Praktikant
27. august 2003 - 11:36 #6
ok - ja det var også en vej udenom :-)
Avatar billede mfalck Praktikant
27. august 2003 - 11:37 #7
havde jeg ikke lige selv tænkt på :-)

alternavtivet til at bruge min metode ville være at lave et lille wrapper-program (i f.eks C) som satte brugerid'et og kørte din program
Avatar billede hemmelig_ninja Nybegynder
27. august 2003 - 11:49 #8
Jeg er ikke så stiv i C :)
Avatar billede mfalck Praktikant
27. august 2003 - 11:58 #9
ok :-)
Avatar billede mfalck Praktikant
27. august 2003 - 12:05 #10
det behøver ikke at være mere avanceret end:

#define REAL_PATH "/usr/bin/myprog"
main(ac, av)
char **av;
{
        execv(REAL_PATH, av);
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester