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 fylla i FTP-uppgifter, och fram­för allt om man arbe­tar lokalt så finns det ingen 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 ägare och grupp till alla filer.

Detta ä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­dare och/eller 2) Man inte längre kan ändra filer. Lös­ningen ä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>

Notera: Starta om datorn efteråt.

För att kon­trol­lera så att grup­pen är tillagd, skriv groups <user> i ett terminalfönster.

Nu behövs två kom­man­don för att få detta att fun­gera. Först, rekur­sivt ägande av den spe­ci­fika map­pen. OBS: kom­man­dona här (chown and chmod) kan skada 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 antingen vara inlog­gad som root eller använda sudo för att köra dessa kom­man­don, av den anledningen.

Först:

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

  1. chown — change file owner and group (ändra filä­gare och grupp), se man chown för detaljer
  2. -R — Rekursivt
  3. <owner>:<group>, i detta fall www-data:www-data
  4. Sök­vä­gen till map­pen. Om du inte är inlog­gad som rot kan du använda ~/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 andra modi­fi­ka­tio­nen, som nog inte bör ligga på live: Grup­pen ska kunna skriva till filerna också:

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

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

Bash­script

Jag är lat och har trött­nat på att skriva dessa kom­man­don varje 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 kunna köras, använd kom­man­dot chmod +x ~/bin/www.permissions.sh

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>