Per Stenebo
2011-10-01 11:39:59
2018-07-23 09:43:57
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ö.
- Skapa mapparna mounts och utdelningsnamn i hemkatalogen: /home/dittnamn/mounts/utdelningsnamn
- 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
- Skapa en textfil, i mappen mounts, tex med namnet mount_server99.sh
- Gör den körbar (högerklick/Egenskaper/Rättigheter).
- Lägg in texten:
#!/bin/bash mount.cifs //192.168.0.99/utdelningsnamn /home/dittnamn/mounts/mappnamn -o credentials=.smb-dittnamn,iocharset=utf8
- Dubbeklicka på filen mount_server99.sh och välj kör i terminal.
- 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
- Skapa en textfil, i mappen /home/dittnamn/mounts, tex med namnet umount_server99.sh.
- Gör den körbar (högerklick/Egenskaper/Rättigheter)
- Lägg in texten:
#!/bin/bash umount.cifs /home/dittnamn/mounts/mappnamn
- Dubbeklicka på filen umount_server99.sh och välj kör i terminal.
- 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
Externa referenser
Linux CIFS Client Guide (pdf)
Ubuntu server guide
File server
Securing File and Print Server
Samba server guide
Övrigt
Migrera användare till annan server
Man pages
smb.conf (Ubuntu)
smb.conf (samba)
smbpasswd (Ubuntu)
pdbedit (samba)
pdbedit (Ubuntu)
mount.cifs (samba)
umount.cifs (samba)