CruellaDeVille Skrevet 14. september 2006 Del Skrevet 14. september 2006 Jeg skal legge inn to hundre brukere på en server, og syns det ville vært usannsynlig kjedelig hvis jeg manuellt må legge inn alle. Så jeg tenkte litt at php kanskje kunne gjøre dette for meg, dvs lese brukernavn fra en fil og kjøre sudo-kommando slik: <?php $users = file('brukernavn.txt'); foreach($users as $user){ $command = "sudo /usr/sbin/netgroupadd $user"; if(exec($command)){ print $user . "<br />\n"; } } ?> Men uten hell.. og jeg tenker det er fordi php-skript ikke har sjans i havet til å være sudo-bruker. Hvordan kan jeg løse dette? Lenke til kommentar
Ernie Skrevet 14. september 2006 Del Skrevet 14. september 2006 Tror nok det er mye enklere hvis du bruker et batch-script i stedet. Lenke til kommentar
CruellaDeVille Skrevet 14. september 2006 Forfatter Del Skrevet 14. september 2006 Tror nok det er mye enklere hvis du bruker et batch-script i stedet. 6863862[/snapback] kan jeg gjøre et slikt batchskript fra ssh? (og da er denne feilpostet) Og jeg har aldri skrevet batch-skript før, noen som kan peke meg ut i riktig retning? (og aller helst skrive det for meg, siden jeg kommer til å bruke timesvis på å finne ut hvordan og jeg egentlig ikke har særlig lyst å lære meg batch-skripting - bare vil ha en jobb gjort) Den som gjør dette for meg skal få sin lønn i himmelen og en offisiell takk i bloggen min (den heldiggrisen ;o)) Lenke til kommentar
Ernie Skrevet 14. september 2006 Del Skrevet 14. september 2006 (endret) Fullt mulig å kjøre over SSH ja. Dessverre ingen racer i det der Edit: Ups, tror jeg tenker på bash-script. Jaja, så mye kan jeg Endret 14. september 2006 av Ernie Lenke til kommentar
xqus Skrevet 14. september 2006 Del Skrevet 14. september 2006 Du kan kjøre PHP scriptet fra kommandolinjen da.. Mest sansynlig hvertfall.. "php script.php" gjør kanskje susen. Da kjøres php scriptet som den brukeren du er logget inn som. Eventuelt kan du kjøre det som root, ved å kjøre sudo su først. Da er det nok med /usr/sbin/netgroupadd $user som kommando. Håper noe av dette var nyttig. Lenke til kommentar
CruellaDeVille Skrevet 14. september 2006 Forfatter Del Skrevet 14. september 2006 Du kan kjøre PHP scriptet fra kommandolinjen da..Mest sansynlig hvertfall.. "php script.php" gjør kanskje susen. Da kjøres php scriptet som den brukeren du er logget inn som. Eventuelt kan du kjøre det som root, ved å kjøre sudo su først. Da er det nok med /usr/sbin/netgroupadd $user som kommando. Håper noe av dette var nyttig. 6864888[/snapback] ' men hva når jeg ikke har tilgang til sudo su? Lenke til kommentar
kakkle Skrevet 15. september 2006 Del Skrevet 15. september 2006 (endret) Er det din linuxboks ? Det skal visst være et verktøy som heter lnewusers, som lar deg legge til brukere fra en fil på formatet: Username:Password:UserID:Group:GECOS:Home:Login Og en slik fil er jo greit å lage ut fra php. Så kan du bare kjøre kommandoen med den fila som input, kanskje ? EDIT: Kommandoen må jo kjøres som root, da. Endret 15. september 2006 av kakkle Lenke til kommentar
kondyj Skrevet 15. september 2006 Del Skrevet 15. september 2006 Hei, Jeg skjønner ikke hvorfor du roter med sudo her ? Hvis du skal bruke sudo, så må brukeren du kjører scriptet som være definert i /etc/sudoers. Det beste er å kjøre scripte med en bruker som har tilgang til slikt, som f.eks root (dette er en typisk root aktivitet). Har du ikke tilgang til root, overlever oppgaven til den personen som har det. Her er noe shell greier : Brukere ligger i filen list, her bare echo'er jeg dem ut myhost:/tmp> for i in `cat list`; do echo $i; done user1 user2 user3 Her kjører jeg netgroupadd commandoen, som feiler siden jeg ikke har noe slikt på maskinen jeg testet fra. myhost:/tmp> for i in `cat list`; do /usr/sbin/netgroupadd $i; done -bash: /usr/sbin/netgroupadd: No such file or directory -bash: /usr/sbin/netgroupadd: No such file or directory -bash: /usr/sbin/netgroupadd: No such file or directory Lenke til kommentar
CruellaDeVille Skrevet 15. september 2006 Forfatter Del Skrevet 15. september 2006 Hei, Jeg skjønner ikke hvorfor du roter med sudo her ? Hvis du skal bruke sudo, så må brukeren du kjører scriptet som være definert i /etc/sudoers. Det beste er å kjøre scripte med en bruker som har tilgang til slikt, som f.eks root (dette er en typisk root aktivitet). Har du ikke tilgang til root, overlever oppgaven til den personen som har det. Her er noe shell greier : Brukere ligger i filen list, her bare echo'er jeg dem ut myhost:/tmp> for i in `cat list`; do echo $i; done user1 user2 user3 Her kjører jeg netgroupadd commandoen, som feiler siden jeg ikke har noe slikt på maskinen jeg testet fra. myhost:/tmp> for i in `cat list`; do /usr/sbin/netgroupadd $i; done -bash: /usr/sbin/netgroupadd: No such file or directory -bash: /usr/sbin/netgroupadd: No such file or directory -bash: /usr/sbin/netgroupadd: No such file or directory 6869141[/snapback] Dette er en server på universitetet i Bergen, og jeg har fått sudo-rettigheter til to kommandoer, nemlig legge til brukere og oppdatere gruppen. Men nå viser det seg at it-avdelingen har skrevet og kjørt skriptet for meg, så jeg takker for all hjelp og beklager hvis noen har brukt mye tid på å forsøke å hjelpe meg. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå