Jag kan inte vara den enda som arbetar med WordPress och blir litet smått irriterad på att behöva fylla i FTP-uppgifter, och framför allt om man arbetar lokalt så finns det ingen FTP. Det man kan göra är att se till så att användaren som webbläsaren använder (i många fall www-data
) är ägare och grupp till alla filer.
Detta är ju jättebra, tills man 1) Inser att den nya templaten man skapat ägs av ens egen användare och/eller 2) Man inte längre kan ändra filer. Lösningen är enkel.
Först, se till så att du tillhör gruppen som webbläsaren använder (här förutsatt att vara www-data
).
Ctrl+Alt+T
för att få upp terminalen, och sedan
sudo usermod -a -G www-data <user>
Notera: Starta om datorn efteråt.
För att kontrollera så att gruppen är tillagd, skriv groups <user>
i ett terminalfönster.
Nu behövs två kommandon för att få detta att fungera. Först, rekursivt ägande av den specifika mappen. OBS: kommandona här (chown
and chmod
) kan skada din dator om du inte är försiktig. Se till så att mappen som du ändrar är exakt den mappen som ska ändras, inte någonting annat. Du behöver antingen vara inloggad som root
eller använda sudo
för att köra dessa kommandon, av den anledningen.
Först:
chown -R www-data:www-data /home/user/folder
chown
— change file owner and group (ändra filägare och grupp), seman chown
för detaljer-R
— Rekursivt<owner>:<group>
, i detta fallwww-data:www-data
- Sökvägen till mappen. Om du inte är inloggad som rot kan du använda
~/folder
om den ligger i din hemmapp. Standardplats brukar vara/var/www/<någonting>
Nu “ägs” filen av www-data, vilket leder till den andra modifikationen, som nog inte bör ligga på live: Gruppen ska kunna skriva till filerna också:
chmod -R g+w /home/user/folder
chmod
— change file mode bits (ändra filens typvärdesbitar). På ren svenska: Ändra filens tillåtelser, seman chmod
för detaljerg+w
— Lägg till skrivrättigheter (w, write) till gruppen. Andra värden är u=user, a=all, använd-
för att ta bort rättigheter. Andra rättigheter är r=read och x=execute
Bashscript
Jag är lat och har tröttnat på att skriva dessa kommandon varje gång, så här kommer mitt bashscript, sparat i ~/bin som www-permissions.sh. Det körs med ./bin/www-permissions.sh /sökväg/till/mappen/som/ska/ändras
#!/bin/bash
# Small script to chown and chmod a folder to www-data
DIR=$1
sudo chmod -R g+w ${DIR} && sudo chown -R www-data:www-data ${DIR}
För att det ska kunna köras, använd kommandot chmod +x ~/bin/www.permissions.sh