Ändra rättigheter på filer i html-mappen Ubuntu-server

Permalänk

Ändra rättigheter på filer i html-mappen Ubuntu-server

Hej!
Håller på att sätta upp en webbserver med Ubuntu 14.04. Problemet vi har är att vi inte kan ändra rättigheterna för alla filer i html-mappen samtidigt.
Det bästa hade varit om filerna fick en viss behörighet när man laddar upp dem på servern. Vi använder oss utav Filezilla samt att vi har kopplat Dreamweaver till servern.
Något förslag på lösning?

Permalänk
Medlem

Du kan alltid köra chmod/chown rekursivt med hjälp av flaggan -R. Exempelvis som nedan.

chmod -R 0755 /var/www/html # Egentligen borde filer ha 0644, men hur du får till det får du klura ut själv

Alternativt om det du vill göra är ändra ägare av filerna/mapparna.

chown -R www-data:www-data /var/www/html

Jag har själv ingen erfarenhet av Filezilla så jag kan inte hjälpa dig med hur du får den att ladda upp filerna med rätt behörighet direkt.

Visa signatur

-- Citera mig om ni vill få återkoppling --

Permalänk
Medlem

Ni kan inte bara köra "sudo chmod 777 *" i mappen?

Visa signatur

Redbox: Asrock B650 Lightning ATX, 7800x3D -20CCO, XFX 6950XT, 2x32GB Corsair Vengence 6400 CL32, WD SN770 2TB, Corsair RMe 1000, Lian Li Lancool 216, Peerless Assassin 120 SE
Purpbox: Z87-Pro, I5 4670K@4.2, Sapphire 290 TRI-X, 2x8GB Crucial Tactical@stock, Deep Silence 1
Samsung Evo 250+500GB + QVO 1TB, 2x1TB 7200RPM backup/lagring
Det var bättre förr: E5300 2600MHz -> 3640MHz, Celeron 300A -> 450MHz

Permalänk
Skrivet av e1m1:

Ni kan inte bara köra "sudo chmod 777 *" i mappen?

och vi kör detta kommando så blir det bara filerna i mappen som påverkas, inte alla undermappar. Och det blir en del mappar att ändra rättigheterna på med alla java-script vi laddat ner. Går det att sätta behörigheter på alla mappar och undermappar på en gång?

Permalänk
Medlem

-R flaggan står för recursive, och ändrar allt, filer undermappar och filer i undermappar. Gäller för både chmod chown och chgrp. Precis som dopedog skriver.

chmod g+s /var/www/mapp borde vara en bra lösning för att låta er ladda upp filer utan att ni behöver ändra rättigheterna på filen efter det.
Det finns många olika sätt att lösa det på, och det hela beror på vilka rättigheter filerna behöver ha för funktionaliteten i hemsidan/webappen. Och sedan hur viktigt säkerheten är.
Läs exempelvis detta när du har tid:
http://serverfault.com/questions/357108/what-permissions-shou...

Permalänk
Skrivet av Genesis:

-R flaggan står för recursive, och ändrar allt, filer undermappar och filer i undermappar. Gäller för både chmod chown och chgrp. Precis som dopedog skriver.

chmod g+s /var/www/mapp borde vara en bra lösning för att låta er ladda upp filer utan att ni behöver ändra rättigheterna på filen efter det.
Det finns många olika sätt att lösa det på, och det hela beror på vilka rättigheter filerna behöver ha för funktionaliteten i hemsidan/webappen. Och sedan hur viktigt säkerheten är.
Läs exempelvis detta när du har tid:
http://serverfault.com/questions/357108/what-permissions-shou...

Vi gjorde detta och det fungerade dock så har vi stött på ett nytt problem. När vi ska lägga upp nya filer via Filezilla och Dreamweaver så går det inte. Vi får detta:

Status: Påbörjar sändning av C:\Users\eribiln12\Google Drive\teknik\Namnlös plats 3\10987380_10152547471891901_6978206094806673415_n.jpg
Kommando: CWD /var/www/html
Svar: 250 Directory successfully changed.
Kommando: TYPE I
Svar: 200 Switching to Binary mode.
Kommando: PASV
Svar: 227 Entering Passive Mode (10,11,7,113,54,176).
Kommando: STOR 10987380_10152547471891901_6978206094806673415_n.jpg
Svar: 553 Could not create file.
Fel: Kritiskt filöverföringsfel

Det går jättebra att uppdatera filer men att skicka nya filer går ej.

Permalänk
Medlem
Skrivet av e1m1:

Ni kan inte bara köra "sudo chmod 777 *" i mappen?

antar att det är för sent nu, men gör aldrig detta. ALDRIG.

här är ett tips för filer respektive mappar
http://superuser.com/questions/91935/how-to-chmod-all-directo...

Visa signatur

"Det här systemet fungerar urkasst." - operatör.
"Hur ska det fungera då?" - jag
"Gör så att det fungerar som jag vill." - operatör.
/facepalm

Permalänk
Skrivet av Otur:

antar att det är för sent nu, men gör aldrig detta. ALDRIG.

Vi gjorde detta bara för att kontrollera om det var rättighetsproblem. Detta är nu ändrat till det Genesis skrev

Permalänk

Generellt är dessa två kommandon bra för behörigheter i webb-roten:
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;

Alltså 755 på kataloger, men 644 på filer

Permalänk
Medlem

Loggen från FTP-servern säger antagligen mer än loggen från klienten. Men antagligen har du gjort något fel med rättigheterna, så att kontot eller grupp-kontot som FTP-servern använder har skriv-rättigheter till befintliga filer, men inte skriv-rättigheter till html-mappen, och eventuellt dess undermappar.

Vad exakt har du gjort, så blir det mindre gissningar? "Detta är nu ändrat till det Genesis skrev" beskriver inte vad du gjort. Jag länkade till en guide som skrev flera olika alternativ för flera olika scenarion.

Vilken användare och grupp äger html-mappen i /var/www, och vad är chmod-rättigheterna dit? (Visa oss "ln -l /var/www/html" om du inte vet)

Vilken FTP-server använder du? vsftpd? Kör du med riktiga systemanvändare till FTP-servern, eller har du satt upp virtuella användare som inte är riktiga systemanvändare?
Har du modifierad något med systemgrupperna, så att systemanvändaren som FTP-servern laddar upp filer via är medlem i flera olika grupper?

Använder hemsidan någon forma av upload eller på något sätt behöver modifiera några filer lokalt på servern? Eller är den helt statisk, och det är bara ni via FTP-servern som behöver skriv-rättigheter till något i /var/www?

Permalänk

Aldrig använda 777 för webbrättigheter. Då kan Owner, Group, Everyone else ändra.

Visa signatur

Intel i5 6600K | Be Quiet, Pure Rock! | Asus Z170 Pro Gaming | Asus GTX 1070 Strix Gaming | HyperX 16 GB (2x8GB) DDR4 2133MHz Fury Black | Samsung 850 Evo 250GB | Skärm: Samsung S27D390H | Chassi: Fractal Design Define R4 Black
Spelnick: Jernhand

Permalänk
Hedersmedlem
Skrivet av kalle1024:

Generellt är dessa två kommandon bra för behörigheter i webb-roten:
find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;

Alltså 755 på kataloger, men 644 på filer

Avslutar man med `+` i stället för `\;` så blir det bara en (eller tja, minimalt antal) körningar av `chmod` per sökning (om vi har GNU find, vill säga — se `-exec command {} +` i `man find`).

I vilket fall så kan man använda `chmod`s symboliska läge för att förenkla detta till ett enda kommando, då det erbjuder `X` som betyder "exekverbart, men bara om det är en katalog". Dessutom har `chmod` en egen växel `-R` för att vandra rekursivt i katalogstrukturen, så ovanstående kommandon är i funktion ekvivalent med:

chmod -R a=rX,u+w .

(Faktiskt är det "bättre" än `find`-konstruktionen i hänsynen att rättigheter för målen för de symboliska länkar som träffas på inte ändras, då `chmod -R` sonika hoppar över symboliska länkar.)

Det är dock försvinnande sällan som ett sådant kommando ska behöva köras, och om det behöver göras ofta så bör man kolla upp varför och ändra sina arbetsmönster.

Det är få saker som kan vara så destruktiva för ett *nix-system som att rekursivt braka på med rättighetsförändringar (jag brukar säga att det är enda tillfället då jag rekommenderar att bara rensa och installera om hela systemet snarare än att försöka "laga" det i efterhand). Det är alltför vanligt att personer som är nya till rättighetssystemet tror att det är en busbra lösning att köra 777 rekursivt från roten (sedan länge så krävs `--no-preserve-root` för detta, men det är ett litet hinder att ta sig över om man verkligen vill ), för att sedan märka att systemet är totalt rökt. Tips om att köra `chmod` rekursivt över stora mängder filer bör ges med stor blinkande varningstext.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

Rättigheter är ett härke i Linux. Speciellt om man är flera användare som ska ändra i samma filer. På de flesta serverar lägger jag till ett script som sätter önskade rättigheter på alla filer. Då är det bara att köra chmod.sh . när det skiter sig . Vilket är ganska ofta.

Permalänk
Medlem

Vet inte om det är smartaste lösningen men jag har iaf ett cronscript som körs var 10:e minut och som ändrar rättigheter och ägare på alla filer i /var/www.

Permalänk
Hedersmedlem
Skrivet av hamre:

Vet inte om det är smartaste lösningen men jag har iaf ett cronscript som körs var 10:e minut och som ändrar rättigheter och ägare på alla filer i /var/www.

Det är rätt horribelt . Försök lista ut varför det uppstår filer med "fel" (stora citationstecken) rättigheter/ägare till att börja med, och lös det korrekt från början i stället.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av phz:

Det är rätt horribelt . Försök lista ut varför det uppstår filer med "fel" (stora citationstecken) rättigheter/ägare till att börja med, och lös det korrekt från början i stället.

Ha ha. Ja så är det säkert. När jag editerar filer som redan finns på servern så blir det korrekt men när jag skapar en ny fil på servern så sätter mitt editeringsprogram mig själv som ägare och rättigheterna rw-r-r så då kan inte www-data läsa den filen.

Permalänk

bättre att lägga till en ny grupp, sedan lägga till dig i gruppen.
Sätt ägare på alla filer till www-data:grupp sedan rättigheter chmod g+rw -r /folder.
*Edit*
På så sätt kan du ha flera användare i gruppen

Permalänk
Medlem
Skrivet av dopedog:

Du kan alltid köra chmod/chown rekursivt med hjälp av flaggan -R. Exempelvis som nedan.

Alternativt om det du vill göra är ändra ägare av filerna/mapparna.

chown -R www-data:www-data /var/www/html

Jag har själv ingen erfarenhet av Filezilla så jag kan inte hjälpa dig med hur du får den att ladda upp filerna med rätt behörighet direkt.

Gör så istället och jag vet inte hur filezilla är men jag använder winscp som kan föra över filer via ssh istället. Då ska det bara vara att skriva i din html katalog direkt.

För att installera ssh

sudo apt-get install ssh

Så kan du även fjärrstyra din dator enkelt från putty.

Visa signatur

AMD 3700x, 1700 GB SSD, 18 TB HDD, 32 GB RAM, MSI RTX3070, Dubbla Blueray brännare.