Etikettarkiv: bash

Förenkla ägande av utvecklingssiter

Jag kan inte vara den enda som arbe­tar med Word­Press och blir litet smått irri­te­rad på att behö­va fyl­la i FTP-upp­gif­ter, och fram­för allt om man arbe­tar lokalt så finns det ing­en FTP. Det man kan göra är att se till så att använ­da­ren som webb­lä­sa­ren använ­der (i många fall www-data) är äga­re och grupp till alla filer.

Det­ta är ju jät­te­bra, tills man 1) Inser att den nya temp­la­ten man ska­pat ägs av ens egen använ­da­re och/eller 2) Man inte läng­re kan änd­ra filer. Lös­ning­en är enkel.

Först, se till så att du till­hör grup­pen som webb­lä­sa­ren använ­der (här för­ut­satt att vara www-data).

Ctrl+Alt+T för att få upp ter­mi­na­len, och sedan

sudo usermod -a -G www-data <user>

Note­ra: Star­ta om datorn efteråt.

För att kon­trol­le­ra så att grup­pen är tillagd, skriv groups <user> i ett ter­minal­föns­ter.

Nu behövs två kom­man­don för att få det­ta att fun­ge­ra. Först, rekur­sivt ägan­de av den spe­ci­fi­ka map­pen. OBS: kom­man­do­na här (chown and chmod) kan ska­da din dator om du inte är för­sik­tig. Se till så att map­pen som du änd­rar är exakt den map­pen som ska änd­ras, inte någon­ting annat. Du behö­ver anting­en vara inlog­gad som root eller använ­da sudo för att köra des­sa kom­man­don, av den anled­ning­en.

Först:

chown -R www-data:www-data /home/user/folder

  1. chown — change file owner and group (änd­ra filä­ga­re och grupp), se man chown för detal­jer
  2. -R — Rekur­sivt
  3. <owner>:<group>, i det­ta fall www-data:www-data
  4. Sök­vä­gen till map­pen. Om du inte är inlog­gad som rot kan du använ­da ~/folder om den lig­ger i din hem­mapp. Stan­dard­plats bru­kar vara /var/www/<någonting>

Nu “ägs” filen av www-data, vil­ket leder till den and­ra modi­fi­ka­tio­nen, som nog inte bör lig­ga på live: Grup­pen ska kun­na skri­va till filer­na ock­så:

chmod -R g+w /home/user/folder

  1. chmod — change file mode bits (änd­ra filens typ­vär­des­bi­tar). På ren svens­ka: Änd­ra filens tillå­tel­ser, se man chmod för detal­jer
  2. g+w — Lägg till skriv­rät­tig­he­ter (w, wri­te) till grup­pen. And­ra vär­den är u=user, a=all, använd - för att ta bort rät­tig­he­ter. And­ra rät­tig­he­ter är r=read och x=execute

Bashscript

Jag är lat och har trött­nat på att skri­va des­sa kom­man­don var­je gång, så här kom­mer mitt bash­script, spa­rat 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 kun­na köras, använd kom­man­dot chmod +x ~/bin/www.permissions.sh