PHP Virgin - ievads PHP

Es izstrādāju tīmekļa lietotni, kas no autentificēta lietotāja paņem virkni parametru (nolaižamās izvēles rūtiņas utt.), Izveido failu, pēc tam šo failu caur stdin piegādā programmai manā tīmekļa serverī.

Dažu servera puses programmu ierobežojumu dēļ es gribētu, lai Apache palaiž šo servera puses programmu kā iepriekš autentificētu lietotāju, nevis kā vispārēju apache lietotāju.

Tā, piemēram, ja lietotājs foo piesakās (aizmugurē izmantojot mod_authz_ldap) un aizpilda veidlapu, tad veidlapai komandā serveris jāizpilda kā lietotāja foo, nevis lietotāja apache.

Vai tas ir iespējams?

Parasti CGI skripti darbojas kā tīmekļa servera lietotājs. Bet daudzi (lielākā daļa?) Tīmekļa mitinātāji izmanto suEXEC, lai palaistu CGI skriptus kā atšķirīgu lietotāju.

Tomēr suEXEC parasti izmanto, lai palaistu skriptu / programmu, jo dažādi lietotāji ir balstīti uz vhost vai lietotāja direktoriju, kurā atrodas programma. Es neesmu pārliecināts, vai ir iespējams dinamiski izvēlēties lietotāju, kā palaist programmu.

Bet tas, ko jūs varētu darīt, ir katras programmas atšķirīgas kopijas, kas atrodas citā vhost vai lietotāja direktorijā, un autentifikācijas procesu izvēlieties, kuru programmas kopiju palaist, efektīvi panākot to pašu.

  • Es baidījos, ka tu to saki.

Man bija ieraksts mūsu sudoers failā, lai dotu konkrētam lietotājam piekļuvi skripta palaišanai bez paroles. Es nedomāju, ka ir viegli dinamiski iestatīt lietotāju, kurš izpilda skriptu. Esiet piesardzīgs, ja rediģējat sudoers failu, izmantojot visudo, nevis citu redaktoru. Ja tas tiek sabojāts un jūs nevarat iesniegt prasību, vienkārši restartējiet un nometiet saknes čaulā un noņemiet līnijas.

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?

noderīga informācija