adduser in linux dmv php en bash script
Ik heb flink lopen googlen om een php script te vinden die het volgende doet:
1. Het php script moet een bash script uitvoeren die een username aanmaakt op mijn freebsd server.
2. Een bevestiging geeft van de gebruikersnaam en het wachtwoord die zojuist aangemaakt zijn
Wat heb ik kunnen vinden?
Dat het iets in deze richting moet worden, ik wel geen exec gebruiken: function createUser($user, $passwd){
system("/usr/local/bin/super userSetup.sh $user $passwd");
}
En zoiets zal het bash script moeten worden;
echo $4 | /usr/sbin/pw useradd -q -h 0 -n $3 -s /bin/none -d /home/$3 -m
Maar kan iemand mij helpen het juiste script compleet in elkaar te zetten? Inclusief invoer vak voor wachtwoord en gebruikersnaam?
Mocht iemand dit kunnen of willen,
Bij deze al heel erg bedankt!
Grts
Gewijzigd op 01/01/1970 01:00:00 door Sander W
Maar wie ben ik om daar over te oordelen.
- Kijk eerst eens of het commando system wel werkt.
- Het commando adduser moet door root worden uitgevoerd. (veiligheidslek)
- $4 is de vierde parameter en ik zie er maar twee.
- Een simpel formulier moet je zelf kunnen maken. Zoniet, leer html.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
SanThe schreef op 18.05.2009 22:08:
Ik raad je dit uiteraard af. Serverbeheer hoort door de root gedaan te worden en niet door een php-script.
Maar wie ben ik om daar over te oordelen.
- Kijk eerst eens of het commando system wel werkt.
- Het commando adduser moet door root worden uitgevoerd. (veiligheidslek)
- $4 is de vierde parameter en ik zie er maar twee.
- Een simpel formulier moet je zelf kunnen maken. Zoniet, leer html.
Maar wie ben ik om daar over te oordelen.
- Kijk eerst eens of het commando system wel werkt.
- Het commando adduser moet door root worden uitgevoerd. (veiligheidslek)
- $4 is de vierde parameter en ik zie er maar twee.
- Een simpel formulier moet je zelf kunnen maken. Zoniet, leer html.
aangezien ik een leek ben in php script en html en helaas geen tijd heb om dit te leren binnen het tijdsbestek wat ik hiervoor heb, hoop ik hier de hulp te krijgen :)
mijn specialiteit ligt hier totaal niet, en die van jullie wel, dus ik hoop op iemand die het voor elkaar krijgt :)
in ieder geval bedankt voor de tot zover aangevulde info!
Wat je tijdsbestek is weet ik niet, maar ik neem aan dat je wel één of twee dagen hebt, dan kan je zo wat inelkaar flansen.
Karl schreef op 18.05.2009 22:27:
Ik hoop dat elk verandig persoon je niet helpt, dit is echt té gevaarlijk en té slecht principe.
Wat je tijdsbestek is weet ik niet, maar ik neem aan dat je wel één of twee dagen hebt, dan kan je zo wat inelkaar flansen.
Wat je tijdsbestek is weet ik niet, maar ik neem aan dat je wel één of twee dagen hebt, dan kan je zo wat inelkaar flansen.
en met exec is het minder gevaarlijk?
wat zijn de alternatieven :)?
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
sander schreef op 18.05.2009 22:37:
en met exec is het minder gevaarlijk?
wat zijn de alternatieven :)?
Karl schreef op 18.05.2009 22:27:
Ik hoop dat elk verandig persoon je niet helpt, dit is echt té gevaarlijk en té slecht principe.
Wat je tijdsbestek is weet ik niet, maar ik neem aan dat je wel één of twee dagen hebt, dan kan je zo wat inelkaar flansen.
Wat je tijdsbestek is weet ik niet, maar ik neem aan dat je wel één of twee dagen hebt, dan kan je zo wat inelkaar flansen.
en met exec is het minder gevaarlijk?
wat zijn de alternatieven :)?
Nee, het hele principe dat jij een gebruiker wilt toevoegen aan je systeem klopt niet.
exec en system zijn binnen PHP allebij even onveilig (net als backticks en shell_exec, passthru en alle andere functies die direct toegang hebben tot het systeem. Voor al deze functies geldt gewoon: check de variabelen die je gebruikt bij het aanroepen, en zorg ervoor dat je alles wat de scripts doen terug kan draaien. Er gaat niets boven een goeie undo-functie :)
edit: ik vind het soms wel knap hoeveel mensen lijken te weten over iets waarvan ze totaal geen context hebben, en het maar moeten doen de stereotype context (beginner probeert iets onveiligs gemakkelijker te maken, en gemakkelijker misbruikbaar te maken)
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
Edit: Als ik op mijn OpenBSD bakkie iets wil doen met 'sudo' als gewone user krijg ik deze melding:
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Stel, ik heb een machine waarop ik voor bijvoorbeeld een groep studenten accounts aan wil maken. Ieder een eigen account zodat ze alle functies van de machine kunnen gebruiken via ssh, en hun eigen stukje schijfruimte, stukje webspace, etc. Zeg maar standaard ouderwets hosting. Ik heb geen idee welke studenten allemaal interesse hebben, en het zijn er teveel om ze te laten mailen en ze met de hand toe te voegen. Dus ik denk: laat ik een scriptje maken dat ze een account geeft. Gewoon op basis van hun studentnummer dat ik door een andere server laat checken etc. of het een legitieme student is, en of hij is ingeschreven, en of hij niet al een account had. Het checken gaat al goed. Hoe moet ik dit dan doen, hoe moet ik de linux machine gebruikers aan laten maken?
edit: clichévraag of niet, ik ben eigenlijk wel benieuwd naar het antwoord. Ik kan me wel situaties bedenken waarin een goeie oplossing voor een soortgelijk probleem toch wel handig is. Daarnaast kan je bij het maken van zo'n script goed nadenken over de beveiliging. Hoeveel ben je daarmee bezig wanneer je 15 mailtjes aan het verwerken bent? Ik denk dat zo'n "onveilig" script zelfs in je voordeel zou kunnen werken.
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
Jelmer schreef op 18.05.2009 22:43:
Zou je de mogelijkheden al niet wat kunnen imperken door via sudo de user waar apache onder draait adduser toegang te geven? Dan zijn de mogelijkheden al iets minder. Je moet nog wel oppassen voor gemene trucjes, maar ik neem aan dat dit alleen voor intern gebruik is, en niet direct van buiten door iemand anders dan jij en de mensen die jij vertrouwt is aan te roepen.
exec en system zijn binnen PHP allebij even onveilig (net als backticks en shell_exec, passthru en alle andere functies die direct toegang hebben tot het systeem. Voor al deze functies geldt gewoon: check de variabelen die je gebruikt bij het aanroepen, en zorg ervoor dat je alles wat de scripts doen terug kan draaien. Er gaat niets boven een goeie undo-functie :)
edit: ik vind het soms wel knap hoeveel mensen lijken te weten over iets waarvan ze totaal geen context hebben, en het maar moeten doen de stereotype context (beginner probeert iets onveiligs gemakkelijker te maken, en gemakkelijker misbruikbaar te maken)
exec en system zijn binnen PHP allebij even onveilig (net als backticks en shell_exec, passthru en alle andere functies die direct toegang hebben tot het systeem. Voor al deze functies geldt gewoon: check de variabelen die je gebruikt bij het aanroepen, en zorg ervoor dat je alles wat de scripts doen terug kan draaien. Er gaat niets boven een goeie undo-functie :)
edit: ik vind het soms wel knap hoeveel mensen lijken te weten over iets waarvan ze totaal geen context hebben, en het maar moeten doen de stereotype context (beginner probeert iets onveiligs gemakkelijker te maken, en gemakkelijker misbruikbaar te maken)
Thanks voor de info,
en inderdaad, veiligheid speelt helemaal geen rol omdat deze server puur lokaal gebruikt wordt door mij alleen.
Ik wil jullie het hele verhaal besparen waarom juist dit scriptje voor mij zo handig zou zijn omdat het anders een te groot verhaal wordt :)
Dus mensen, de veiligheid mag je laten varen bij het uitwerken van een idee :)
Je noemt al een aantal controles waarmee je checked of het inderdaad een toelaatbaar iemand is. Ik denk dat die personen dan het best een mail met daarin een vastgestelde syntax met de gegevens kunnen sturen naar een speciaal daarvoor bestemd emailadres. Achter dat adres kan dan een compleet script (geen php maar bash) zitten die alle gegevens controleert en eventueel een user kan aanmaken met alle rechten en restricties.
@SanThe is dat niet verplaatsen van het probleem? Nu moet je een mailserver met een trigger-achtig systeem hebben die een bash-script de "gevaarlijke handeling" laat doen. Hoe is dit veiliger dan een gewone veilige PHP installatie met wat extra rechten als het gaat om adduser?
sander schreef op 18.05.2009 22:51:
... deze server puur lokaal gebruikt wordt door mij alleen
Even inloggen en adduser doen. Ik neem aan dat je dit slechts heel zelden hoeft te doen aangezien jij de enige gebruiker bent.
sander schreef op 18.05.2009 22:51:
... deze server puur lokaal gebruikt wordt door mij alleen
Quote:
Even inloggen en adduser doen. Ik neem aan dat je dit slechts heel zelden hoeft te doen aangezien jij de enige gebruiker bent.
Ik snap je aanname niet, als die juist was, was ik dit topic niet begonnen :)
Gewijzigd op 01/01/1970 01:00:00 door sander W