Ändra fil rättigheter (linux ubuntu) för temporära uppladdade filer uppladdade av ett php script?

Trädvy Permalänk
Medlem
Plats
Malung
Registrerad
Sep 2007

Ändra fil rättigheter (linux ubuntu) för temporära uppladdade filer uppladdade av ett php script?

Hallå! Lite knepig rubrik men vet inte riktigt hur jag ska skriva det bättre. Till saken...

Jag håller för tillfället på med en hemsida där man kan ladda upp filer. Själva uppladdnings koden funkar utmärkt men jag använder mig av ett virus program för att skanna dom uppladdade filerna för eventuella virus. Det programmet heter clamdav.

Det jag vill göra är att skanna en uppladdad fil när den ligger i /tmp/ mappen innan jag flyttar den till webb servern med php scriptet. men... Dom filerna som kommer till /tmp/ mappen har rättigheterna 0600 och det gör så att jag inte kan komma åt filen med clamdav.

Så jag undrar om någon vet hur jag ändrar rättigheterna för temporära filer som laddas upp med ett php script? Kanske lite knepigt formulerat...

Jag använder Ubuntu 14.04 och php version 5.5.9.

Asus P8Z77-V | Intel i5-3570K @ 4,7GHz | GTX 1070 | 24GB DDR3 1600MHz | Fractal Design 650W Gold | Fractal Design R4

www.levelexpose.com - Expose your game maps and add game servers for monitoring and ranking.

Trädvy Permalänk
Medlem
Registrerad
Feb 2012

Du bör nog undvika att ändra rättigheterna. Hur exekverar du clamdav?

Trädvy Permalänk
Medlem
Plats
gbg
Registrerad
Nov 2007

@PuTT91: Tror detta kan vara matnyttigt: https://en.wikipedia.org/wiki/Umask

Tower: ace Battle IV | CPU AMD Phenom II X2 BE unlocked 4cores@3,2GHz | RAM 8GB DDR2@800MHz | MB ASUS M4A785-M | GFK AMD Radeon HD 6850 1GB | HDD Kingston SSD Now 60GB (/) Seagate 2TB(/home) | OS Ubuntu 16.04 LTS

Trädvy Permalänk
Medlem
Plats
Malung
Registrerad
Sep 2007
Skrivet av ono:

Du bör nog undvika att ändra rättigheterna. Hur exekverar du clamdav?

Just nu kör jag med:
$clamdscan = "clamdscan " . $_FILES["file"]["tmp_name"];
shell_exec($clamdscan);

Jag har även testat php-clamav men får inte det att funka.

Om jag kör med clamav (inte clamdav) så funkar det men då måste virus databasen laddas in innan själva virus sökningen startas och det kräver alldeles för mycket prestanda för att ens tänka på.

Så det hade varit bäst om jag kunde få clamdav (deamon) att funka.

Skrivet av krigelkorren:

Tack. Ska kolla på det.

Asus P8Z77-V | Intel i5-3570K @ 4,7GHz | GTX 1070 | 24GB DDR3 1600MHz | Fractal Design 650W Gold | Fractal Design R4

www.levelexpose.com - Expose your game maps and add game servers for monitoring and ranking.

Trädvy Permalänk
Medlem
Registrerad
Feb 2012

Vilken användare kör daemonen?

Trädvy Permalänk
Medlem
Plats
Piteå
Registrerad
Okt 2004

går inte att lösa med cron? typ att rättigheterna på filerna i mappen uppdateras varje minut och clam körs varje minut? kanske luddig förklaring men du förstår kanske hur jag menar?

CPU: AMD Ryzen 1700x @ 3.8GHz || Mem: 16GB Corsair LPX 3000mhz || Mobo: Asus x370 Prime || GPU: EVGA Geforce GTX1070 SC || SSD: WD black 500GB m2 || OS: Linux Mint/Win 10 || Monitor: Dell 43" 4K P4317Q

Citera om du vill ha svar :)

Trädvy Permalänk
Medlem
Plats
Malung
Registrerad
Sep 2007
Skrivet av ono:

Vilken användare kör daemonen?

clamav borde det vara.

Skrivet av Pelle:

går inte att lösa med cron? typ att rättigheterna på filerna i mappen uppdateras varje minut och clam körs varje minut? kanske luddig förklaring men du förstår kanske hur jag menar?

Nej jag tror inte det. Filerna är ju bara tillgängliga en kort stund medans php scriptet körs. Sen tas dom bort automatiskt. Finns nog väldigt stor chans att cron kommer missa det om man inte kör med någon delay.

Asus P8Z77-V | Intel i5-3570K @ 4,7GHz | GTX 1070 | 24GB DDR3 1600MHz | Fractal Design 650W Gold | Fractal Design R4

www.levelexpose.com - Expose your game maps and add game servers for monitoring and ranking.

Trädvy Permalänk
Medlem
Registrerad
Feb 2012

Ett alternativ kan ju vara att byta användare på daemon till www-data om du inte använder programmet på annat sätt? (känns kanske inte helt riskfritt)

Ett annat är ju att faktiskt flytta filer till en annan sökväg på samma hårddisk, som en pool du sedan veriferar ifrån. Då låser du dig inte till php, utan kan som @Pelle säger använda cron eller ett eget script som därefter godkänner och flyttar filerna.

Trädvy Permalänk
Medlem
Plats
Malung
Registrerad
Sep 2007

Tack för alla svar. Jag gjorde en php script som körs via crontab som kollar filerna någon minut efter uppladdning. Då funkar det att köra med clamav deamon.

Asus P8Z77-V | Intel i5-3570K @ 4,7GHz | GTX 1070 | 24GB DDR3 1600MHz | Fractal Design 650W Gold | Fractal Design R4

www.levelexpose.com - Expose your game maps and add game servers for monitoring and ranking.

Trädvy Permalänk
Medlem
Plats
Härnösand
Registrerad
Jan 2016

Varför kör du inte bara rättigheten på mappen till 7777 och ha stöd för uppladdning till just den mappen?

För vilka rättigheter en fil ska ha kan du sedan göra så klart på många olika sätt för komma åt den.
Allt ifrån .htaccess till ge dem en länk med kod i länken där den endast är giltigt 1 gång, finns många lösningar för begränsa tillgången till en fil som finns på webben, men själva uppladdningen av filen kan man lika gärna sätta 7777 tillhörighet än köra temporär CHMOD på 777.