Författare:
Per Stenebo
Skapad:
2011-10-01 11:39:59
Ändrad:
2018-07-23 09:43:57
sv

CIFS

CIFS (Common Internet File System) är det rekomenderade sättet att montera windowsutdelningar i Linux och ger bättre överföringshastighet än SMB.

Följande tips är avsedda för Ubuntu 8.10, Intrepid Ibex, men det mesta gäller dom flesta Linuxdistributioner.

Generella tips

  • Avmonterar man inte innan avstängning/omstart får man en paus och ett felmeddelande.

SMBFS

För att kunna montera resurser med SMB eller CIFS behövs programmet SMBFS, installera grafiskt via pakethanteraren (Synaptic) eller från terminalen:

sudo apt install cifs-utils smbfs

Monteringspunkt

För att kunna montera en utdelning behövs en monteringspunkt. En monteringspunkt är helt enkelt en mapp man skapar någonstans på det lokala filsystemet, tex i din hemkatalog. Var den monteringspunkten placeras avgör en del av dess egenskaper.

  • Allt man monterar under mappen /media dyker upp som en genväg på skrivbordet för alla användare.
  • Om man monterar under en mapp i hemkatalogen och tar bort läsrättigheterna för alla andra på den mappen så blir säkerheten bättre.

Namn eller IP

CIFS fungerar bäst (och enklast) med IP-nummer, vill du ansluta med namn så är det praktiskt att kolla så att namnupplösningen funkar först:

ping -c 3 servernamn

Montera via terminalen

Syntax:

mount.cifs {utdelning} {monteringspunkt} [-o valmöjlighet]

Exempel:

mount.cifs //192.168.0.99/musik /home/rolf/musik -o username=rolf,password=flor,iocharset=utf8

Avmontera via terminalen

Syntax:

umount.cifs {monteringspunkt} [-nVvhfle]

Exempel:

umount.cifs /home/rolf/musik

Montera via skript

Byt ut "dittnamn", "utdelningsnamn", "mappnamn", "192.168.0.99", "lösenord" så att dom passar din miljö.

  1. Skapa mapparna mounts och utdelningsnamn i hemkatalogen: /home/dittnamn/mounts/utdelningsnamn
  2. Skapa en textfil med namnet .smb-dittnamn, i mappen /home/dittnamn/mounts/.
    Punkten i namnet gör den dold.
  3. Lägg in texten (inga mellanslag eller något annat, bara byt ut dittnamn och lösenord):
    username=dittnamn
    password=lösenord
  4. Skapa en textfil, i mappen mounts, tex med namnet mount_server99.sh
  5. Gör den körbar (högerklick/Egenskaper/Rättigheter).
  6. Lägg in texten:
    #!/bin/bash
    mount.cifs //192.168.0.99/utdelningsnamn /home/dittnamn/mounts/mappnamn -o credentials=.smb-dittnamn,iocharset=utf8
  7. Dubbeklicka på filen mount_server99.sh och välj kör i terminal.
  8. Nu borde utdelningen dyka upp i filhanteraren.

Det borde gå att köra filen automatiskt vid inloggning genom att öppna menyn System/Inställningar/Sessioner/Lägg till och skriva in kommandot:

./home/dittnamn/mounts/mount_server99.sh

Men jag har inte fått detta att fungera ännu...

Avmontera via skript

  1. Skapa en textfil, i mappen /home/dittnamn/mounts, tex med namnet umount_server99.sh.
  2. Gör den körbar (högerklick/Egenskaper/Rättigheter)
  3. Lägg in texten:
    #!/bin/bash
    umount.cifs /home/dittnamn/mounts/mappnamn
  4. Dubbeklicka på filen umount_server99.sh och välj kör i terminal.
  5. Nu borde utdelningen försvinna i filhanteraren.

Montera automatiskt i fstab

I filen /etc/fstab monteras alla filsystem på din dator vid uppstart. Med ytterligare instruktioner i filen kan man montera även smb/cifs-utdelningar automatiskt. Tänk på att samma utdelningar monteras för alla användare på datorn. Därför sätter jag monteringspunkten i hemkatalogen och gör den lässkyddad för andra.

Skapa en textfil med namnet .smb-dittnamn, i mappen /home/dittnamn/mounts/.
Punkten i namnet gör den dold.

Lägg in texten (inga mellanslag eller något annat, bara byt ut dittnamn och lösenord):

username=dittnamn
password=lösenord

Innan du börjar mixtra i fstab, gör en backup av orginalfilen:

sudo cp /etc/fstab /etc/fstab_org

Sedan kan du redigera, tex grafiskt med Gedit:

sudo gedit /etc/fstab

Syntax i fstab:

[UNC sökväg] [monteringspunkt] [protokoll] [alternativ] [dump] [pass]

Exempel på rad i fstab:

//192.168.0.85/data /home/per/mounts/hem4-data cifs credentials=/home/per/mounts/.smb-per,_netdev,iocharset=utf8 0 0

Du kan testa den nya fstab-filen med:

sudo mount -a

Och avmontera igen med:

sudo umount -a

Problem/undantag

mount error(13): Permission denied

Kontrollera användarnamn och lösenord, även i ev "credentials="-fil.

 

Olika UID/GID på servern och klienten för samma användare

Visar sig tex med att klienten inte kan skriva filer/skapa mappar i utdelningen. Tvinga monteringen att använda klientens GID, lägg till följande mount options:

uid=1001,forceuid,gid=1002,forcegid

Där 1001 är den aktuella användarens UID på klienten, kollas med:

id

CIFS VFS-error

Om du får detta felmeddelande vid avstängning/omstart:

CIFS VFS: Server not responding
CIFS VFS: no response for cmd 50 mid 30

Så har inte Cifs-anslutningarna avmonterats innan nätverksanslutningen stoppades.

Detta verkar påverka alla Debian-derivat och problemet finns kvar i Ubuntu 8.10, men det finns sätt att komma runt felet med ett skript från jejik.com:

Gå till mappen:

cd /etc/init.d/

Ladda ner skriptet:

sudo wget http://www.jejik.com/files/examples/umountcifs

Kolla koden i texten så att inget skumt förekommer, gör sedan skriptet körbart:

sudo chmod +x umountcifs

Skapa symbolisk länk till skriptet i mappen rc0.d för att fixa felet vid avstängning:

sudo ln -s /etc/init.d/umountcifs /etc/rc0.d/K12umountcifs

Skapa symbolisk länk till skriptet i mappen rc6.d för att fixa felet vid omstart:

sudo ln -s /etc/init.d/umountcifs /etc/rc6.d/K12umountcifs

Detta borde göra susen.

Uppdatering: Problemet försvann med Ubuntu 11.04 (har jag för mej).

Error vid spara

På utdelningar från Windows Vista och Server 2003 har jag stött på problem med att spara filer jag öppnat. Men skapa, kopiera, spara som.. fungerar bra.

Detta bekymmer har jag ingen lösning på ännu, annat än att undvika att använda Windows som server, också...

Interna sidor

Ubuntu Server/samba

Nätverksfilsystem/Samba

 

Externa referenser

samba.org

Linux CIFS Client Guide (pdf)

Ubuntu server guide

 File server 
Securing File and Print Server
Samba server guide

Övrigt

howtoforge

Migrera användare till annan server

Man pages

samba docs

smb.conf (Ubuntu)

smb.conf (samba)

smbpasswd (Ubuntu)

pdbedit (samba)

pdbedit (Ubuntu)

mount.cifs (samba)

umount.cifs (samba)

 

Kommentarer till sidan CIFS