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

Permalänk
Medlem

Ä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.

Visa signatur

ASUS PRIME Z370-P II | Intel Core i7 9700K | GTX 1070 | 16GB DDR4 2666MHz | Corsair RM750X | Fractal Design Define C

Permalänk
Medlem

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

Permalänk
Medlem

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

Visa signatur

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 20.04 LTS
-Numera titulerad: "dator-hipster" då jag har en AMD GPU och dessutom kör Linux.

Permalänk
Medlem
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.

Visa signatur

ASUS PRIME Z370-P II | Intel Core i7 9700K | GTX 1070 | 16GB DDR4 2666MHz | Corsair RM750X | Fractal Design Define C

Permalänk
Medlem

Vilken användare kör daemonen?

Permalänk
Medlem

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?

Visa signatur

Citera om du vill ha svar :)

Permalänk
Medlem
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.

Visa signatur

ASUS PRIME Z370-P II | Intel Core i7 9700K | GTX 1070 | 16GB DDR4 2666MHz | Corsair RM750X | Fractal Design Define C

Permalänk
Medlem

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.

Permalänk
Medlem

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.

Visa signatur

ASUS PRIME Z370-P II | Intel Core i7 9700K | GTX 1070 | 16GB DDR4 2666MHz | Corsair RM750X | Fractal Design Define C

Permalänk
Medlem

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.