Filsystem på nätverket
Slackware.SE Wiki
[redigera] 5.6 Filsystem på nätverket
Vid det här laget bör du ha en fungerande TCP/IP-anslutning till ditt nätverk. Du borde kunna pinga andra datorer på ditt lokala nätverk, och om du har konfigurerat gatewayen rätt bör du också kunne pinga datorer på internet. Som vi vet är poängen med att sätta upp en dator i ett nätverk att få access till information. Medan några sätter upp datorer på nätverket bara för nöjes skull så använder de flesta det till att dela filer och skrivare. De vill komma åt dokument på internet eller spela ett onlinespel. Att ha fungerande TCP/IP installerat på ditt nya Slackwaresystem är ett steg på vägen, men med bara TCP/IP installerat blir det väldigt rudimentärt. För att dela filer, måste vi transportera dem fram och tillbaka med antingen FTP eller SCP. Vi kan inte browsa efter filer på vår nya Slackware-maskin från vårt nätverk eller genom mina nätverksplatser på en windowsdator. Vi skulle vilja kunna komma åt filer på andra Unixmaskiner obehindrat.
Vi skulle helst vilja kunna använda ett nätverksfilsystem (network file system), som tillåter oss transparent åtkomst till våra filer på andra datorer. Programmet som vi använder för att interagera med information lagrad på våra datorer behöver inte veta på vilken dator den givna filen är lagrad, det behöver bara veta att den finns och hur man tar sig dit. Det är sedan upp till operativsystemet att hantera åtkomsten till den filen via det tillgängliga filsystemet och nätverket. Det två mest använda nätverksfilsystemen är SMB (implementerat av Samba) och NFS.
5.6.1 SMB/Samba/CIFS
Sambas konfigureringsfil är /etc/samba/smb.conf; en av de mest välkommenterade konfigureringsfiler du kommer att hitta någonstans. Exempelutdelningar har upprättats så det enda du behöver göra är att modifiera dem. Om du behöver mera kontroll så är mansidan för smb.conf oumbärlig. Eftesom Samba är så väldokumenterad på dessa platser som jag beskrev här ovan, som kommer vi inte att skriva om hela dokumentationen här, men vi kommer snabbt gå igenom grunderna.
smb.conf är nedbruten i flera sektioner, en per utdelning, och en global sektion för inställningar som kan användas överallt. Några val är bara giltiga i den globala sektionen och några är bara giltiga utanför den globala sektionen. Kom ihåg att den globala sektionen kan kringgås av övriga sektioner. Titta i mansidorna för mer information.
Du vill förmodligen modifiera smb.conf för att reflektera nätverksinställningarna för ditt nätverk. Jag föreslår ändringarna som är listade här nedan.
[global] # workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2 workgroup = MYGROUP
Ändra namnet för arbetsgruppen (workgroup) till att återspegla den arbetsgrupp eller det domännamn som du använder lokalt.
# server string is the equivalent of the NT Description field server string = Samba Server #
Detta blir namnet på din Slackware-dator som det visas i Nätverket (eller Mina Nätverksplatser).
# Security mode. Most people will want user level security. See # security_level.txt for details. NOTE: To get the behaviour of # Samba-1.9.18, you'll need to use "security = share". security = user
Du kommer säkerligen att vilja implementera säkerhet på användarnivå på ditt Slackware-system.
# You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba # documentation. # Do not enable this option unless you have read those documents encrypt passwords = yes
Om krypterade lösenord inte är aktiverat kommer du inte att kunna använda Samba med NT4, Win2k, WinXP och Win2003. Tidigare versioner av Windows operativsystem behöver inte krypterade lösenord för att dela filer.
SMB är ett bekräftande protokoll, vilket betyder att du måste ange rätt användarnamn och lösenord för att använda tjänsten. Vi talar om för sambaservern vilka användarnamn och lösenord som gäller med kommandot smbpasswd. smbpasswd kräver några växlar för att tala om ifall det är en vanlig användare eller maskinanvändare som ska läggas till (SMB kräver att du lägger till NETBIOS namn på de maskiner som användaren tillåts att ansluta ifrån).
Lägga till en användare i filen /etc/samba/private/smbpasswd. # smbpasswd -a user Lägga till ett maskinnamn i filen /etc/samba/private/smbpasswd. # smbpasswd -a -m machine
Det är viktigt att det givna användar- eller maskinnamnet redan finns i filen /etc/passwd innan. Du kan enkelt utföra det med kommandot adduser. Notera att när du använder kommandot adduser för att lägga till ett maskinnamn så måste du även lägga till ett "$" i maskinnamnet. Detta ska dock inte göras med smbpasswd då det lägger till ett dollartecken själv. Om man av misstag glömmer detta i adduser så resulterar det i att det blir fel när du försöker att lägga till maskinen i samba.
# adduser machine$
5.6.2 Network File System (NFS)
NFS (står för Network File System) var från början skrivet av Sun för deras Solaris implementation till Unix. Medans det är betydligt enklare att komma igång jämnfört med SMB så är det har det också lägre säkerhet. Den primära säkerhetsbristen i NFS är att det är väldigt lätt att spoofa användare och grupper från en maskin till en annan. NFS är ett obekräftande protokoll. Framtida versioner av NFS planerade att ha högre säkerhet, men det är inget på gång nu i skrivande stund.
NFS konfigurationen kontrolleras av filen /etc/exports. När du öppnar standardfilen /etc/exports i en editor, så kommer du att få en nästan tom fil, bara två rader med kommentarer i toppen. Vi måste lägga till en rad i filen för varje katalog vi vill exportera, med en lista av klienter som tillåts åtkomst till den filen. Till exempel, om vi vill exportera (dela ut) katalogen /home/foo till arbetsstationen Bar, så lägger helt enkelt till denna rad:
/home/foo Bar(rw)
Till vår /etc/exports fil nedan, ser du att det är exempel från mansidans exportfil:
# sample /etc/exports file / master(rw) trusty(rw,no_root_squash) /projects proj*.local.domain(rw) /usr *.local.domain(ro) @trusted(rw) /home/joe pc001(rw,all_squash,anonuid=150,anongid=100) /pub (ro,insecure,all_squash)
Som du kan se finns det olika val tillgängliga, men det mesta borde vara solklart i detta fall.
NFS fungerar under antagandet att den givna användaren på en maskin i nätverket har samma användar-ID på alla maskiner i nätverket. När ett försök görs för att läsa eller skriva från en NFS klient till en NFS server, så passerar UID (användar-ID) för skriv/läs förfrågan. Detta UID är behandlat på samma sätt som om den kom ifrån den lokala maskinen. Som du kan se, om någon egenmäktigt kan specificera ett givet UID när man ansluter till resurser på ett remote system, kan och kommer dåliga saker att hända. Som lite skydd mot detta, är varje katalog monterat med root_squash. Detta mappar UID för varje användare som påstår att den är root till ett annat UID, detta förhindrar åtkomst för root till filer och mappar i exportkatalogen. root_squash är aktiverat som standard som en säkerhetsåtgärd, men du rekommenderas att ändå ta med det i din /etc/export fil.
Du kan också exportera en katalog direkt ifrån konsolen på servern, genom att använda kommandot exportfs.
# exportfs -o rw,no_root_squash Bar:/home/foo
Detta delar ut katalogen /home/foo på datorn "Bar" och ger Bar läs/skriv rättigheter. Dessutom kommer inte NFS serven anropa root_squash, vilket betyder att användare med användar-ID "0" (root´s UID) kommer att ha samma rättigheter som root på servern (vanligtvis när en katalog är specifierad i dator:/katalog/fil, refererar den bara till en fil på den angivna datorn).
Du hittar mera information i mansidan för exportfilen.
klart, någon som känner sig manad att kontrollera ev. felaktigheter?
Delvis korrigerad av swiperII
--Dartanjang 12 juli 2006 kl.16.04 (CEST)
