CGI- och PHP-program är program som exekveras på webbservern. Av säkerhetsskäl använder sig DSV av suEXEC vilket innebär att alla CGI/PHP-program körs under användarens egen identitet i stället för webbserverns identitet (www-data). För att CGI/PHP-program ska fungera måste vissa regler följas:

  1. Filer med CGI-program skall ha namn som slutar på ".cgi" och PHP-programs namn skall sluta på ".php".
  2. .cgi-filer kan skrivas i valfritt programspråk. Är programmet inte kompilerat så måste första raden som vanligt vara en #!-rad som anger interpretatorn.
  3. Katalogen där CGI/PHP-programmet ligger får bara vara skrivbar av ägaren och inga andra.
  4. Filen med CGI/PHP-program får bara vara skrivbar av ägaren och inga andra.
  5. Filen med CGI/PHP-program måste vara exekverbar av ägaren (ha x-biten satt för ägaren).
  6. Filen med CGI/PHP-program får inte ha Unix setuid eller setgid satt.
  7. Alla kataloger ovanför CGI/PHP-programmet i filsystemshierarkin måste vara exekverbara för alla (ha x-biten satt för "others"). Det här kravet är inte specifikt för CGI/PHP-program utan gäller även vanliga statiska webbsidor.

PHP-filer måste vara exekverbara

Normalt så brukar PHP-filer inte vara exekverbara, men eftersom DSV använder suEXEC så måste de vara det.

Om du är inloggad på en Linux-pc vid DSV eller vid skalservern triton.dsv.su.se så  kan du göra alla PHP-filer i ett katalogträd exekverbara med Unix-kommandot

find . -name '*.php' -exec chmod u+x {} \;