Server-drift-kom-ihåg #1

# Ta reda på vilken användare [något] kör som i Debian
 ps aux | grep [något]
# Visa vilka användare som finns
 cat /etc/passwd
# Visa vilka grupper som finns
 groups
# Lägg till en användare i en grupp
 usermod -a -G [grupp] [användare] //Glöm inte att logga ut/in om du ändrar detta på den användare du just nu är inloggad som
# Visa vilka grupper en användare ingår i
 groups [användare]

Blekinge studentkår-appen uppdaterad!

Blekinge studentkårs Android-app har uppdaterats. Eftersom jag är en av utvecklarna av denna app (som dessutom har det yttersta ansvaret för den just nu) tycker jag det är lite lämpligt att jag åtminstonde langar in en länk till original-inlägget.

http://sis.bthstudent.se/2011/721/blekinge-studentkar-appen-har-uppdaterats/

En QR-kod till er att skanna av

https://market.android.com/details?id=se.bthstudent.android.bsk

Anpassad .vimrc (tex per projekt)

Hittade en trevlig plugin till VIM där man med hjälp av denna kan läsa in en anpassad .vimrc-fil, som tillägg till den globala .vimrc-filen som sourcas av VIM varje gång man öppnar det.

Detta plugin letar efter en fil vid namn _vimrc_local.vim från den mapp man står i och sen borrar den sig rekursivt nedåt.

Detta innebär alltså att man tex skulle kunna anpassa sina indrag på ett projekt-baserat sätt, utan att behöva tänka efter och aktivera funktioner på egen hand. Om ett projekt kräver 2 teckens mellanslag som indrag, anpassar man _vimrc_local.vim efter det. Om ett annat projekt kräver 4 teckens tab som indentering, då anpassar man _vimrc_local.vim efter det. Den mapp-lokala filen bestämmer alltså hur VIM ska bete sig beroende på dess innehåll.

Pluggen kan ni skaffa här

http://code.google.com/p/lh-vim/source/browse/misc/trunk/plugin/local_vimrc.vim

och en tillhörande VIM-boll (och källa) kan ni skaffa här:

http://lh-vim.googlecode.com/files/lh-vim-lib-2.2.5.vba
http://code.google.com/p/lh-vim/wiki/lhVimLib

local_vimrc.vim placerar man i ~/.vim/plugin och VIM-bollen laddar man hem, öppnar med VIM och skriver

:so %

WordPress-rättigheter

Bök, bök, bök. www-data, grupper, wp-content/uploads, FTP-access, osv…

Den här gången skulle jag en gång för alla se till att min WP-installation hade de rättigheter jag ville. Varför? För att jag vill låta min WP-installation uppdatera saker och ting på egen hand utan att fråga efter fruktansvärt frutstrerande FTP-uppgifter (1980, anyone?), plus ge de användare jag vill, rättigheter till olika delar av webinstallationen i övrigt. Det tog tid. Och jag fick det inte som jag ville slutändan ändå. Jag sitter inne med följande konfiguration:

  • Debian
  • Apache 2
  • PHP 5
  • WordPress 3.x

För att göra en historia kort och koncis:

  • Se till att mapparna wp-admin och wp-content ägs av www-data (dvs samma användare som apache kör) och att denna användare får läsa och skriva dit
sudo chown -R www-data:web wp-admin/ wp-content/
sudo chmod -R 775 wp-admin/ wp-content/

Internet: Hur i helsefyr kan jag få den här WP-installationen att köra som root:webdev och fortfarande låta uppgraderingar av WP vara FTP-lös. Jag vill inte köra med FTP bara för att rättigheterna inte är WP-kompatibla, men jag ser inte att jag ska behöva installera ACL och suPHP och suExec, osv… I mitt sinne borde det här fungera med “chown root:web…” eller “chown mickemus:web…” så länge www-data ingår i gruppen web och gruppen web får släsa/skriva till mapparna wp-admin och wp-content. Kommentera gärna!

MySQL-specifikt

Okej, nu har jag gjort det här tillräckligt sällan och behövt det tillräckligt många gånger (som så mycket annat som kommer läggas till senare)

# Lägg till en användare

CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';

# Lägg till rättigheter åt en användare

GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' WITH GRANT OPTION;

# Ta bort rättigheter från en användare

REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...

# Ta bort en användare

DROP USER user;

# Ändra namn på en användare

RENAME USER old_user TO new_user

# Ändra lösenord på en användare

SET PASSWORD FOR 'bob'@'*' = PASSWORD('newpass');

# Återställ root-lösen (the *nix-way)

  1. Logga in på boxen där ‘mysqld’ kör
  2. Hitta .pid-filen som innehåller serverns ‘process ID’. Den exakta platsen och namnet kan variera. Vanliga platser är:
    /var/lib/mysql
    /var/run/mysqld/
    /usr/local/mysql/data/
    Generellt har filen en ändelse .pid och börjar med ‘mysqld’ eller boxens namn.
    Du kan stoppa mysqld med ett normalt kill-kommando (inte kill -9), genom att använda hela sökvägen till .pid-filen, enligt:
    $ kill `cat /mysql-data-katalog/boxnamn.pid`
    Notera “backostroferna”.
  3. Skapa en textfil som innehåller följande (byt ut löesnord med ett egenvalt lösenord):
    UPDATE mysql.user SET Password=PASSWORD(lösenord’) WHERE User=’root’;
    FLUSH PRIVILEGES;
  4. Spara filen. Kalla den ‘mysql-init’ och lägg den i din egen hem-mapp, där ingen annan kan komma åt den. Se till att mysql har möjlighet att läsa filen.
  5. Starta MySQL-servern med växeln ‘–init-file’:
    $ mysqld_safe –init-file=[sökväg till]/mysql-init &
    MySQL-server kommer att starta upp, läsa in filens innehåll, vilket effektivt ändrar root:s lösenord till det du skrivit in.
  6. När servern har startat, radera filen mysql-init.

# Återställ root-lösen (the Mac-way med mysql-5.7.9-osx10.10)

  1. Stop the MySQL service if it’s running
  2. Start a shell
  3. Type in:
    sudo mysqld-safe –skip-grant-tables
  4. Start another shell
  5. Type in:
    mysql -u root
    update user set authentication_string=password(‘1111′) where user=’root’;
    FLUSH PRIVILEGES;
    exit
  6. Kill mysqld_safe by typing in:
    sudo kill -11 [PID of mysqld_safe]
  7. Restart the MySQL service

Ubuntu och Primär/Sekundär-skärmsuppsättning

Satt på jobbet och försökte reda ut hur man får Ubuntu att förstå att en skärm är primär och en är sekundär. Jag försökte med det standardinära Monitor-verktyget som följer med, men det fanns inget sätt att byta mellan skärmarna för att få till en enkel flytt av alla paneler. Jag hittade däremot ett par xrandr-kommandon som ser till att åstadkomma till 95% det som jag behöver och kan läggas i ett skript.

Använd ‘xrandr’ för att ta reda på vad skärmarnas id:n är, pussla sedan ihop en skript-fil lik denna:

xrandr --output VGA1 --off
xrandr --output HDMI1 --auto --primary
xrandr --output VGA1 --auto --left-of HDMI1

(Förutsättning, bara två skärmar. Har man fler får man utöka och pussla lite till) Detta kommer nu att stänga av din nuvarande “primärskärm” som du vill göra om till sekundär. Därefter kommer den skärm som är igång att sättas till primärskärm och slutligen den som precis stängts av, sätts som sekundärskärm.

Nå, vad är det som inbegrips i de övriga 5%:en? Ja, det är väl ett rätt schysst skript och fungerar så vitt jag kan se så länge man har xrandr och håller koll på id:n. Men jag vet inte om det är så himla elegant och när man sätter det som en del av uppstarten till sin inloggning så blinkar det till lite extra i skärmarna. Jag vet inte heller om det gör att applikationer blir lite förvirrade över växlingen, men det återstår att undersöka.

Få mailto-länkar att öppnas i Google Mail i Chrome i Ubuntu

Lite underligt att detta inte kan skötas genom något smidigare sätt än detta, men det är iallafall tillräckligt smidigt för att praktiskt taget vem som helst ska kunna fixa det själv

aptitude install desktop-webmail
  1. Klicka på Applications->Internet->Desktop Webmail
  2. Sätt Gmail som default
  3. Klicka på System->Preferences->Preferred Applications
  4. Väl Desktop Webmail som standardprogram