Toon posts:

PHP interface voor LPQ/LPC *?*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Bestaat zoiets? Ik kan niets vinden erover, maar ik zoek een eenvoudige manier om de printerqueue van onze fileserver hier op afstand te beheren. Zelf kan ik zonder moeite omgaan met lpq en lpc (vooral topq is hierbij van belang), maar anderen moeten dit ook kunnen en zijn totale leken wat Linux / *BSD betreft. Ook wil ik niet dat zij super-user worden uiteraard (wat jammer genoeg wel nodig is voor lpc topq) :+

Bij voorbaat dank.

Verwijderd

Niet dat ik weet. Je kunt zelf wel commando's in php uitvoeren. Dus ook lpr en lpq. De uitvoer kun je dan gebruiken bij het genereren van je pagina's.

Verwijderd

Topicstarter
Op donderdag 21 februari 2002 11:56 schreef the_tag-man het volgende:
Niet dat ik weet. Je kunt zelf wel commando's in php uitvoeren. Dus ook lpr en lpq. De uitvoer kun je dan gebruiken bij het genereren van je pagina's.
Mjah, maar hoe zit het met de commando's waarvoor je super-user moet zijn? :?

Verwijderd

Topicstarter
Nog een nadere verklaring:

Het probleem:
Ik heb hier een printer gedeeld via SAMBA. Op het moment wordt deze gebruikt door 5 Windows 2000 workstations. Nu komt het regelmatig voor dat iemand 50 (of zelfs meer) documenten naar de printer verstuurt en iemand anders graag tussendoor een documentje print.

Tot nu toe ben ik dan altijd degene die inlogt op de server en met het commando "lpc topq <printer> <gebruiker>" voorrang verleen aan het document. So far so good, maar ik ben niet meer voor lang onder de week aanwezig en voor de rest kan niemand hier met Linux / *BSD omgaan.

Ook lijkt het me beter als dat zo blijft, omdat het niet de bedoeling is dat iedereen hier met de server rotzooit. Het wachtwoord geef ik dus ook niet vrij.

Maar hoe stel ik mensen nu in staat eenvoudig voorrang te verlenen aan een document, zonder dat zij directe toegang tot de server hebben? Vanuit hun Windows systeem via een HTML interface (PHP) lijkt me tot nu toe de enigste oplossing :/

Probleem is wel dat het "lpc topq" commando een privileged command is, waardoor het alleen met de super-user werkt *zucht*

De oplossing:
Wil ik graag horen! :p :D

Ik zocht eerst naar een oplossing via SAMBA, want de printer is immers een gedeelde SAMBA printer, maar kon er niets over vinden. Hoe kan ik dit via PHP regelen?

Verwijderd

Topicstarter
Niemand?

Verwijderd

Je kan met PHP een programma of shellscript uitvoeren, wat setuid root is. Dit zorgt ervoor dat dit programma als root uitgevoerd wordt.

Natuurlijk schrok je even bij het woord "root" hierboven, en het is dan ook overbodig te zeggen dat dit niet echt veilig is.

Verwijderd

Topicstarter
Hmm, dat vermoedde ik al |:(

Na ja, ik ga er nog eens goed over nadenken, misschien kan het ook helemaal anders :)

Verwijderd

Topicstarter
Op donderdag 21 februari 2002 16:22 schreef Sjord het volgende:
Je kan met PHP een programma of shellscript uitvoeren, wat setuid root is. Dit zorgt ervoor dat dit programma als root uitgevoerd wordt.
Hoe doe je dit?

Het aangevraagde programma, lpc in dit geval, controleert namelijk de username met behulp van getuid(). Dus het moet echt als root uitgevoerd worden en niet alleen de permissies ervoor hebben.

Verwijderd

Topicstarter
http://www.php.net/manual/en/ref.exec.php

Daarmee draaien programma's toch gewoon als dezelfde user die Apache gebruikt (nobody)?

Verwijderd

Als je een shellscript setuid root maakt wordt het niet als nobody maar altijd als root uitgevoerd.

Volgens mij maak je iets setuid root met chmod 4755 ofzo.

  • Sihaya
  • Registratie: Juni 2001
  • Niet online

Sihaya

Pasfoto:

Werkt het ook niet als je de usergroup printer admin maakt?

dus bij de printer share:
printer admin = @users

Of je maakt een extra printer service aan. En zet daar een speciaal "print command" die wijst naar een script. Wat lpr en lpc topq doet.

signature has expired

Pagina: 1