Konfigurera SAMBA

Du kan konfigurera SAMBA-servern genom att redigera filen /etc/samba/smb.conf. Varje rad innehåller olika inställningar. Mer information om de olika inställningarna går att hitta i kommentarerna i filen eller genom att läsa manualsidan till filen som du får fram genom att skriva följande kommando i terminalfönstret:

man smb.conf

[Tips]

Innan du redigerar konfigurationsfilen bör du se till att göra en kopia av originalfilen och skrivskydda den, så att du har kvar originalinställningarna dels som referens, och dels för återanvändning ifall det blir nödvändigt.

Säkerhetskopiera filen /etc/samba/smb.conf:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original

Nu kan du redigera /etc/samba/smb.conf och göra de ändringar du vill göra.

Server

Som ett komplement till SAMBA-sviten av fil och skrivardelningsprogram innehåller även Ubuntu andra kraftfulla serverprogram, som är designade för att ge dig extra nätverksserverfunktioner för Windowsklienter som liknar de som finns i faktiska windowsservrar. Till exempel erbjuder Ubuntu centraliserad hantering av nätverksresurser, som datorer och användare, via katalogtjänster och tillåter identifiering av datorer via autentieringstjänster.

Följande delar kommer att ta upp SAMBA och tillhörande teknologier såsom Lightweight Directory Access Protocol (LDAP) och Kerberos i mer detalj. Du kommer också lära dig om några av de konfigurationsdirektiv som går att använda i SAMBA:s konfigurationsfil som låter dig integrera ditt Ubuntusystem med Windowsklienter och servrar.

Active Directory

Active Directory är en proprietär implementation av katalogtjänster från Microsoft, och den används för att erbjuda sätt att dela information om nätverksresurser och användare. Förutom att fungera som en central källa för sådan information kan Active Directory också agera som en central källa för autentisering i nätverket. Active Directory kombinerar alla de möjligheter man traditionellt hittar i separata, specialiserade katalogsystem, för att förenkla integrering, hantering och säkerhet för nätverksresurser. Paketet SAMBA går att konfigurera så att det använder Active Directory-tjänster från en Windows Domain Controller.

LDAP

Serverprogrammet LDAP erbjuder Windowsdatorer katalogtjänster som fungerar på nästan samma sätt som Microsofts Active Directory-tjänster. Bland dessa tjänster finns hantering av identiteter och relationer mellan datorer, användare, och grupper av datorer eller användare som deltar i nätverket, och erbjuder ett konsekvent sätt att beskriva, lokalisera och hantera dessa resurser. Den fritt tillgängliga implementationen av LDAP som finns tillgängligt för ditt Ubuntusystem kallas OpenLDAP. LDAP:s server-demoner som är ansvariga för att hantera katalogförfrågningar och överföring av katalogdata från en LDAP-server till en annan i Ubuntu heter slapd och slurpd. OpenLDAP går att användas tillsammans med SAMBA för att erbjuda fil-, utskrifts- och katalogtjänster på ungefär samma sätt som en Windows Domain Controller gör så länge SAMBA är kompilerats med LDAP-stöd.

Kerberos

Autentiseringssystemet Kerberos är en standardiserad tjänst för att erbjuda autentisering för datorer och användare genom en centraliserad server som beviljar krypterade biljetter, vilka accepteras som äkthetsbevis av alla andra datorer som använder Kerberos. Några fördelar med autentisering genom Kerberos är ömsesidig autentisering, delegerad autentisering, interoperabilitet och förenklad förtroendehantering. De vanligaste serverdemonerna som används för Kerberosautentisering och databashantering för Kerberos i Ubuntu är krb5kdc och kadmin. SAMBA kan använda Kerberos för att autentisera datorer och användare mot en Windows Domain Controller. För att göra det måste Ubuntusystemet ha Kerberos installerat, och /etc/samba/smb.conf måste ändras för att välja korrekt realm och läge för security. Till exempel, ändra filen /etc/samba/smb.conf och lägg till värdena:

realm = DOMÄNNAMN

security = ADS

till filen, och spara filen.

[Tips]

Se till att du byter ut DOMÄNNAMN i ovastående exempel mot det riktiga namnet på din Windows-domän.

Du behöver starta om SAMBA-demoner för att dessa ändringar ska verkställas. Starta om SAMBA-demonerna genom att skriva följande kommando i terminalfönstret:

sudo /etc/init.d/samba restart

Datorkonton

Datorkonton används i katalogtjänster för att ge varje dator i nätverket en unik identitet, och de hanteras till och med på samma sätt som användare vad gäller säkerhet. Datorkonton kan ha lösenord precis som användarkonton, och måste identifiera sig för att komma åt nätverksresurser precis som användare. Till exempel, om en nätverksanvändare med ett giltigt konto för ett speciellt nätverk försöker identifiera sig mot en nätverksresurs från en dator som inte har ett giltigt datorkonto kan användaren komma att nekas tillgång till resursen, beroende på de policys som används på nätverket.

Ett datorkonto går att lägga till SAMBA:s lösenordsfil, förutsatt att namnet på datorn som läggs till redan är ett giltigt användarkonto i den lokala lösenordsdatabasen först. För att lägga till ett dator- eller maskinkonto till SAMBA:s lösenordsfil används kommandot smbpasswd i en terminal såhär:

sudo smbpasswd -a -m DATORNAMN

[Tips]

Se till att ersätta DATORNAMN i ovanstående exempel med namnet på den dator du vill lägga till ett konto för.

Filrättigheter

Filrättigheter definierar de uttryckliga rättigheter en dator eller användare har till en speciell katalog, fil eller uppsättning filer. Sådana rättigheter går att definiera genom att ändra på filen /etc/samba/smb.conf och specificerar de uttryckliga rättigheterna för respektive filutdelning. Om du till exempel har skapat en SAMBA-utdelning som heter sourcedocs och enbart vill dela ut läsrättigheter (read-only) till gruppen som heter planning, men vill ge gruppen authors och användaren richard skrivrättigheter skriver du följande rader under posten [sourcedocs]:

read list = @planning

write list = @authors, richard

Spara /etc/samba/smb.conf för att ändringarna ska verkställas.

En annan möjlig rättighet är att ge någon administrativa (administrative) rättigheter för till en delad resurs. Användare som har administrativa rättigheter kan läsa, skriva eller modifiera all information som finns i den resursen som användaren har administrativa rättigheter till. Om du till exempel vill ge användaren melissa administrativa rättigheter till vår exempelutdelning sourcedocs behöver du redigera filen /etc/samba/smb.conf och lägga till följande rad under posten [sourcedocs]:

admin users = melissa

Spara /etc/samba/smb.conf för att ändringarna ska verkställas.

Klienter

Ubuntu innehåller klientprogram och möjligheter att komma åt nätverksresurser som delas över SMB-protokollet. Till exempel kan du använda verktyget smbclient för att komma åt utdelade filsystem på ungefär samma sätt som med en klient för File Transfer Protocol (FTP). Säg att du vill komma åt en delad mapp som heter documents som delas ut av en Windowsdator vid namn bill med smbclient. I så fall skulle du skriva ett kommando som ser ut ungefär så här vid prompten:

smbclient //bill/documents -U <användarnamn>

Du kommer sedan att bli tillfrågad om lösenordet för användarnamnet du angett efter -U flaggan och efter en lyckad verifiering kommer en inmatningsmarkör visas där du kan skriva in kommandon för att hantera och skicka filer med en syntax liknande den använd i en icke-grafisk FTP klient. För mer information om smbclient verktygen, läs mer på verktygets manualsidor genom att använda kommandot:

man smbclient

Lokal montering av fjärransluten nätverksresurs genom att använda SMB-protokollet är också möjligt med programmet smbfs.

För att montera en utdelad mapp med namnet project-code på en Windowsserver med namnet development som användare dlightman på ditt Ubuntusystems monteringspunkt /mnt/pcode (monteringspunkten du väljer skall vara en tom mapp) skall du skriva följande kommando vid inmatningsmarkören:

sudo mount -t smbfs -o username=dlightman //development/project-code /mnt/pcode

Du kommer att bli frågad om användarens lösenord, och när du har lyckats autentisera dig kommer innehållet i den utdelade resursen att finnas lokalt tillgängligt via monteringspunkten du skrev som det sista argumentet till mount-kommandot. För att koppla från den delade resursen, använd helt enkelt kommandot umount, precis som du skulle göra med vilket annat monterat filsystem som helst. Till exempel:

sudo umount /mnt/pcode

Användarkonton

Användarkonton är personer som, efter någon form av identifiering, kan använda speciella datorer och nätverksresurser. Vanligtvis i en nätverksmiljö får alla personer som kan komma åt en dator eller nätverket var sitt användarkonto, där policys och rättigheter sedan definierar de exakta rättigheterna användarkontot har tillgång till. För att definiera nätverksanvändare i SAMBA i ditt Ubuntusystem, använd kommandot smbpasswd. För att till exempel lägga till en SAMBA-användare till ditt Ubuntusystem med användarnamnet jseinfeld skriver du följande kommando vid prompten:

sudo smbpasswd -a jseinfeld

Programmet smbpasswd kommer sedan be dig skriva ett lösenord för användaren:

New SMB password:

Skriv in lösenordet du vill använda för användaren, och smbpasswd ber dig nu att bekräfta lösenordet:

Retype new SMB password:

Bekräfta lösenordet, och smbpasswd kommer att lägga användaren till SAMBA:s lösenordsfil.

Grupper

En grupp är en samling av datorer eller användare som har samma rättighetsnivåer till vissa nätverksresurser och ger dig lite möjligheten att kontrollera tillgång till resurser lite mindre finkornigt. Om till exempel en grupp som heter qa definieras och innehåller användarna freda, danika och rob och en annan grupp vid namn support skapas med användarna danika, jeremy och vincent kommer nätverksresurser som konfigureras för att släppa in gruppen qa följdaktligen släppa in freda, danika och rob, men inte jeremy eller vincent. Eftersom användaren danika tillhör både gruppen qa och support kommer hon att kunna komma åt nätverksresurser som släpper in användare från vilken som av grupperna, medans alla andra användare bara kommer att ha tillgång till nätverksresurser som just deras grupp har tillgång till.

När du definierar grupper i SAMBA:s konfigurationsfil, /etc/samba/smb.conf, används ett "@" innan namnet för att visa att det är en grupp. Om du till exempel vill skapa en grupp vid namn sysadmin någonstans i /etc/samba/smb.conf skulle du behöva skriva in gruppnamnet som @sysadmin.

Gruppolicys

Gruppolicys definierar vissa inställningar i SAMBA som påverkar vilken domän eller arbetsgrupp datorns konton tillhör, och andra globala inställningar för SAMBA-servern. Till exempel, om SAMBA-servern tillhör en arbetsgrupp av Windowsdatorer som heter LEVELONE kan du ändra på /etc/samba/smb.conf och ändra på följande rad:

workgroup = LEVELONE

Spara filen och starta om SAMBA-demonerna för att verkställa ändringen.

Andra viktiga inställningar för global policy inkluderar server string, som avgör vilket NETBIOS-namn ditt Ubuntusystem ska berätta för andra datorer på det Windows-baserade nätverket. Det här är namnet som ditt Ubuntusystem kommer att vara känt som av Windowsklienter och andra datorer som klarar av att bläddra i nätverket med SMB-protokollet. Du kan dessutom bestämma namnet och platsen för SAMBA-serverns loggfiler genom att ändra på instruktionen log file i filen /etc/samba/smb.conf.

Vissa av de övriga instruktionerna som påverkar den globala gruppolicyn inkluderar anvisningar för hur alla delade resurser ska uppföra sig. Till exempel kan du skriva vissa instruktioner under rubriken [global] i filen /etc/samba/smb.conf, varpå det kommer att påverka alla utdelade resurser, om de inte har egna instruktioner som säger emot den här instruktionen. Du kan göra alla utdelade resurser bläddringsbara för alla klienter på nätverket genom att skriva instruktionen browseable under rubriken [global] i /etc/samba/smb.conf. Instruktionen tar ett booleskt argument - true eller false. Med andra ord, om du ändrar på filen och lägger till raden:

browseable = true

i avdelningen [global] i /etc/samba/smb.conf så kommer alla utdelade resurser ditt Ubuntusystem erbjuder över SAMBA att gå att bläddra i av alla identifierade klienter, om inte en specifik resurs innehåller instruktionen browseable = false, eftersom det då kommer att åsidosätta den globala instruktionen.

Andra exempel som fungerar ungefär likadant är instruktionerna public och writeable. Instruktionen public accepterar ett booleskt värde och avgör om en specifik delad resurs är synlig för alla klienter, oavsett om de är identifierade eller inte. Instruktionen writeable accepterar också ett booleskt värde och definierar om en specifik delad resurs är skrivbar för någon och alla nätverksklienter.