LinuxFanClub Wiki

Υπηρεσίες, Προγραμματισμός, Εκπαίδευση ..

User Tools

Site Tools


el:linux:debian:server:samba

Samba - Εξυπηρετητής αρχείων Windows

Εγκατάσταση - Ρύθμιση

Για την εγκατάσταση

aptitude install samba

Με το sysvconfig ή το ksysv ορίστε την εκτέλεσή της υπηρεσίας κατά την εκκίνηση Προσοχή το nmbd θα πρέπει να ξεκινάει πριν το smbd.

Χρησιμοποιείστε το παρακάτω αρχείο smb.conf και κάντε τροποποιήσεις με βάση το δικό σας δίκτυο. Σημειώστε ότι ο προκαθορισμένος υπερχρήστης λέγεται root και όχι administrator. Αρχικά θα πρέπει να ορίσετε το password του υπερχρήστη με την εντολή

smbpasswd -a root

Για να προσθέσετε ένα μηχάνημα με όνομα CLIENT01 εκτελέστε τις εντολές

useradd CLIENT01\$
smbpasswd -a -m CLIENT01

Το παραπάνω smb.conf αρχείο έχει δυνατότητα αυτόματης εγγραφής μηχανήματος, άρα μπορούμε να παρακάμψουμε την εγγραφή του μηχανήματος με τις παραπάνω εντολές. Μπορεί ούτως η άλλως να χρειαστεί να γίνει έτσι εάν για παράδειγμα εμφανιστεί μήνυμα ότι το όνομα του μηχανήματος χρησιμοποιείται ήδη.

Για να διαγράψουμε ένα μηχάνημα

smbpasswd -x -m CLIENT01
userdel CLIENT01\$

Για να δημιουργήσετε έναν νέο χρήστη με όνομα smbtest αρχικά δημιουργήστε τον ως τυπικό χρήστη linux και στην συνέχεια ως χρήστη samba

adduser smbtest
smbpasswd -a smbtest

Για να διαγράψετε έναν υπάρχον χρήστη (και από τους τοπικούς χρήστες του Linux)

smbpasswd -x smbtest

Με την παράμετρο –remove-all-files η εντολή καθυστερεί λίγο αφού ψάχνει για όλα τα αρχεία του χρήστη (από home, samba, shared κτλ) αλλά είναι η καλύτερη. Προτείνεται να εκτελεστεί στο παρασκήνιο.

deluser --remove-all-files smbtest&
rm -rf /var/lib/samba/profiles/smbtest

Δημιουργήστε τους φακέλους που θα αποθηκεύσουν τα profiles,netlogon και τους drivers. Για παράδειγμα.

mkdir /var/lib/samba/profiles
chmod 1777 /var/lib/samba/profiles/
chgrp users /var/lib/samba/profiles/
mkdir /var/lib/samba/netlogon
chmod 775 /var/lib/samba/netlogon
chgrp users /var/lib/samba/netlogon
mkdir /var/lib/samba/drivers
chmod 775 /var/lib/samba/drivers
chgrp users /var/lib/samba/drivers/

Δημιούργησε έναν καινούργιο χρήστη π.χ. template και πρόσθεσέ τον στους χρήστες samba

adduser template
smbpasswd -a template
  1. Κάνε σύνδεση σε ένα μηχάνημα πελάτη ως χρήστης template και άλλαξε όπως θες το προφίλ του
  2. Μπες στο ίδιο μηχάνημα ως διαχειριστής
  3. Κάνε τον φάκελο C:\Documents and Settings\template κοινό για όλους
  4. Από τον μηχάνημα εξυπηρετητή samba βρες αυτόν τον διαμοιραζόμενο φάκελο και αντέγραψέ τον στο φάκελο NetLogon σου π.χ. /var/lib/samba/netlogon, μετονομάζοντάς τον σε Default User.
  5. Αφαίρεσε την κοινή χρήση από αυτόν τον φάκελο
  6. Φτιάξε τώρα έναν νέο χρήστη. Το αρχικό του προφίλ θα είναι αυτό που υπάρχει στον φάκελο /servername/netlogon/Default User.

Αυτό δούλεψε αλλά δεν έχει δοκιμαστεί ακόμα εκτενώς. Εάν υπάρχουν καθυστερήσεις στην είσοδο των χρηστών γενικότερα μετονόμασε τον φάκελο σε Default User.bak για την περίοδο που δεν προστίθονται νέοι χρήστες.

smb.conf

Ένας γρήγορος τρόπος να ρυθμιστεί η υπηρεσία samba είναι η χρήση ενός τυπικού αρχείου πάνω στο οποίο θα γίνουν αλλαγές που θα το προσαρμόσουν στο δικό σας τοπικό δίκτυο. Παρακάτω είναι ένα τέτοιο τυπικό αρχείο smb.conf για την χρήση samba ως

  • Εξυπηρετητή αρχείων windows
  • Εξυπηρετητή σύνδεσης σε λογαριασμό windows και χρήση του προσωπικού προφίλ περιαγωγής
# Global parameters
  [global]
      workgroup = VAGK.LOCAL
      map to guest = Bad User
      passdb backend = tdbsam
      #username map = /etc/samba/smbusers
      printcap name = cups
      add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$
      logon script = login.bat
      logon path = \\%L\profiles\%U
      logon drive = Z:
      logon home = \\%L\%U
      domain logons = Yes
      os level = 51
      preferred master = Yes
      domain master = Yes
      ldap ssl = no
      winbind uid = 10000-20000
      winbind gid = 10000-20000
      #printer admin = @ntadmin, root, administrator
      cups options = raw
  [homes]
      comment = Home Directories
      path = %H
      valid users = %S
      inherit acls = Yes
      browseable = No
      readonly = No
      create mask = 0600
      directory mask = 0700
  [users]
     comment = All users
     path = /home
     read only = No
     inherit acls = Yes
     veto files = /aquota.user/groups/shares/
[groups]
     comment = All groups
     path = /home/groups
     read only = No
     inherit acls = Yes
[printers]
     comment = All Printers
     path = /var/tmp
     create mask = 0600
     printable = Yes
     browseable = No
[print$]
     comment = Printer Drivers
     path = /var/lib/samba/drivers
     write list = @ntadmin, root
     force group = ntadmin
     create mask = 0664
     directory mask = 0775
[netlogon]
     comment = Network Logon Service
     path = /var/lib/samba/netlogon
     write list = root
     guest ok = Yes
     browseable = No
[profiles]
     path = /var/lib/samba/profiles
     read only = No
     create mask = 0600
     directory mask = 0700
[proglinux]
     comment = Various linux stuff
     path = /mnt/hda11/programslinux
     create mask = 0600
     directory mask = 0700
     guest ok = Yes
     case sensitive = No
     msdfs proxy = no
[public]
     path = /root/public
     guest ok = Yes
     read only = No

Έλεγχος

Για να ελέγξουμε την ορθότητα του αρχείου smb.conf εκτελούμε

testparm /etc/samba/smb.conf

Εκτύπωση

Πολλές φορές είναι θεμιτό να μπορούμε να εκτυπώσουμε από τους client υπολογιστές στον εκτυπωτή που είναι συνδεδεμένος στον samba server. Για να το πετύχουμε αυτό, θα πρέπει να ρυθμιστούν κατάλληλα οι υπηρεσίες samba και cups

Στο αρχείο smb.conf θα πρέπει να υπάρχουν τα παρακάτω στον τομέα [global]

[global]
..
#Network printer configuration
printing = cups
printcap name = cups
load printers = yes
..

Επίσης θα πρέπει να υπάρχουν τα ακόλουθα shares τουλάχιστον

[printers]
  comment= All Printers
  path= /var/tmp
  create mask= 0600
  printable= Yes
  browseable= Yes
  public = yes
  guest ok = yes
  writable = no
  printable = yes
  printer admin = administrator,root
[print$]
  comment= Printer Drivers
  path= /var/lib/samba/drivers
  write list= administrator, root
  force user= administrator, root
  create mask= 0664
  directory mask= 0775

Προσθέτουμε τον εκτυπωτή σε κάθε client ξεχωριστά, αφού συνδεθούμε ως root ή ως administrator στο κάθε μηχάνημα.

Οι χρήστες root και administrator, εάν είναι δικτυακοί θα πρέπει να ανήκουν στην τοπική ομάδα administrator στο κάθε μηχάνημα. Εάν είναι τοπικοί θα πρέπει να ανήκουν στην τοπική ομάδα administrator και να έχουν ίδιο κωδικό με τους δικτυακούς.

Για την διευκόλυνσή μας την ώρα της προσθήκης, μπορούμε να έχουμε το inf αρχείο του οδηγού του εκτυπωτή σε κάποιον κοινόχρηστο φάκελο, ώστε με αναζήτηση να βρεθεί και να εγκατασταθεί ο οδηγός του εκτυπωτή.

Για να δώσουμε μόνο σε ορισμένους χρήστες δυνατότητα εκτύπωσης (βλ. Πολιτικές εκτύπωσης)

Κωδικοι

Πολύ σημαντικό όταν υπάρχουν 2 ειδών χρήστες (linux και samba) είναι ο συχρονισμός των μεταξύ τους κωδικών.

samba -> linux

Αρκεί να προσθέσουμε τις παρακάτω γραμμές στο αρχείο smb.conf

unix password sync = yes
pam password change = yes

Πλέον όταν θα τροποποιείται ο κωδικός του windows (samba) χρήστη μέσω της εντολής smbpasswd από τον server ή από κάποιον client, θα τροποποιείται και ο κωδικός του linux χρήστη

linux -> samba

Εγκαθιστούμε το πακέτο libpam-smbpass

aptitude install libpam-smbpass

Στο αρχείο /etc/pam.d/common-password χρειάζονται μόνο οι παρακάτω γραμμές

password   required   pam_unix.so nullok obscure md5
password   sufficient  pam_smbpass.so nullok  use_authtok try_first_pass

Πλέον όταν θα τροποποιείται ο κωδικός του linux χρήστη μέσω της εντολής passwd από τον server θα τροποποιείται και ο κωδικός του linux χρήστη

Πολιτικές

Windows Policies

smb.conf

Στο αρχείο /etc/samba/smb.conf θα πρέπει να έχουμε τις παρακάτω γραμμές

[netlogon]
  comment = Network Logon Service
  path = /var/lib/samba/netlogon
  write list = root
  guest ok = Yes
  browseable = No

poledit - Εγκατάσταση

(βλ. http://wiki.samba.org/index.php/Implementing_System_Policies_with_Samba)

Θα χρειαστούμε το εργαλείο poledit και ένα client μηχάνημα (κατά προτίμηση με ΛΣ windows xp pro).

Για το poledit

  • Κατεβάζουμε ένα το network install του sp4 για windows 2000 server στην αγγλική του έκδοση W2KSP4_EN.EXE
  • Στην συνέχεια αποσυμπιέζουμε με W2KSP4_EN.EXE /x και εγκαθιστούμε το adminpack.msi
  • Εκτελούμε απευθείας poledit.exe και επιλέγουμε New

adm files

Κάποιες από τις επιλογές δεν μπορούν να αλλαχθούν εάν δεν αλλάξουμε πρώτα τα πρότυπα ρυθμίσεων (.adm files).

Τα πρότυπα ρυθμίσεων ορίζονται στο poledit στο μενού Options → Templates

roaming profile quotas

Στο αρχείο c:\windows\inf\winnt.adm υπάρχει η ρύθμιση για το μέγιστο όριο προφίλ σε 30000KB

(Σημ: Για να εμφανιστεί ο φάκελος c:\windows\inf θα πρέπει να ανοίξουμε τον περιηγητή αρχείων των windows. Να επιλέξουμε το μενού Εργαλεία / Επιλογές Φακέλων. Στην καρτέλα Προβολή να επιλέξουμε Εμφάνιση κρυφών αρχείων και φακέλων και να ξετσεκάρουμε την Απόκρυψη προστατευμένων αρχείων του Λειτουργικού Συστήματος)

PART !!ProfileSize                   NUMERIC REQUIRED SPIN 100
VALUENAME "MaxProfileSize"
   DEFAULT 30000
   MAX    30000
   MIN    300
END PART

Αλλάζουμε το MAX 30000 σε MAX 100000.

Επανεκκινούμε το poledit και πλέον έχουμε την δυνατότητα να επιλέξουμε το νέο όριο.

Custom .adm files

Οι επιλογές που λαμβάνονται από το αρχείο winnt.adm είναι βασικές αλλά λίγες. Προσθέτωντας περισσότερα .adm αρχεία έχουμε πλέον περισσότερες επιλογές στην δημιουργία πολιτικών.

(Για custom .adm αρχεία βλέπε http://www.pcc-services.com/custom_poledit.html)

Αντιγράφουμε τα adm αρχεία στον φάκελο c:\windows\inf και στην συνέχεια από το poledit τα προσθέτουμε από το μενού Options → Templates

NTConfig.POL

Aφού κάνουμε τις όποιες ρυθμίσεις μας με το poledit αποθηκεύουμε το αρχείο ως NTConfig.POL κρατώντας backup οπωσδήποτε εάν έχουμε κάποιο παλιό.

Το NTConfig.POL το αντιγράφουμε στον φάκελο netlogon. Π.χ. /var/lib/samba/netlogon/

ΠΡΟΣΟΧΗ! Εάν θέλουμε να δοκιμάσουμε μια νέα πολιτική στον server παραγωγής, θα πρέπει να αφήσουμε μόνο 1 Η/Υ ανοιχτό στο domain και κατά προτίμηση χωρίς ήδη υπάρχουσα πολιτική. Οι νέες πολιτικές δεν αναιρούν ρυθμίσεις από τις προηγούμενες εκτός εάν το ορίσουμε εμείς.

NTConfig.POL Example

Προσθέτωντας και το αρχείο custom.adm που βρίσκεται εδώ στο poledit έχουμε πλέον περισσότερες επιλογές πολιτικών. Κάποιες από τις χρήσιμες είναι :

  • Default Computer
    1. Automatic Updates
      1. Disable Automatic Updates : Τσεκαρισμένο
  • Default User
    1. Windows NT System
      1. Disable Lock Workstation : Τσεκαρισμένο
    2. Windows NT User Profiles
      1. Limit Profile Size
        • Έχετε υπερβεί το ..
        • Max Profile Size : 50000
        • Notify User When Profile Storage is Exceeded : Τσεκαρισμένο
      2. Exclude Directories in Romaing Profiles
        • Temporary Internet Files;Temp;Application Data
    3. Custom Windows Explorer Settings
      1. Always Show File Extension : Τσεκαρισμένο
    4. Custom Internet Explorer Settings
      1. Generic IE Settings

Mandatory Profiles

Προεργασία

Ένα mandatory profile (υποχρεωτικό προφίλ) είναι ένα σταθερό μη εγγράψιμο προφίλ που εφαρμόζεται στους υπάρχοντες και στους νέους χρήστες. Οποιεσδήποτε αλλαγές γίνονται κατά την διάρκεια μιας συνεδρίας διαγράφονται κατά την αποσύνδεση

Αρχικά θα πρέπει να ρυθμίσουμε έναν νέο χρήστη όπως ακριβώς τον θέλουμε για το υποχρεωτικό προφίλ (βλ 2 διαδικασίες : πολύπλοκη-υποστηρίζεται από MS ή ευκολότερη-χωρίς υποστήριξη από MS).

  • Ως τοπικός διαχειριστής δημιουργούμε έναν νέο χρήστη π.χ. tpluser
  • Συνδεόμαστε τοπικά ως tpluser και κάνουμε τις ρυθμίσεις που θέλουμε και αποσυνδεόμαστε
  • Συνδεόμαστε στο domain ως ένας domain admin που έχει ταυτόχρονα και δικαιώματα administrator τοπικά.
    • Από Πίνακας Ελέγχου / Σύστημα / Για Προχωρημένους / Προφίλ Χρηστών πατάμε στο Ρυθμίσεις
    • Επιλέγουμε τον τοπικό χρήστη tpluser και πατάμε Αντιγραφή σε
    • Εισάγουμε \\serverip\profiles\mandprofile (mandprofile.V2 για Windows 7) και ορίζουμε δικαιώματα σε όλους (Everyone)

Ρυθμίσεις samba

Μετονομάζουμε το αρχείο ntuser.dat σε ntuser.man

 mv /var/lib/samba/profiles/mandprofile/ntuser.dat /var/lib/samba/profiles/mandprofile/ntuser.man

Ορίζουμε πλήρη δικαιώματα για όλους. π.χ.

chmod -R 777 /var/lib/samba/profiles/mandprofile

Στο αρχείο /etc/samba/smb.conf κάνουμε τις ακόλουθες ρυθμίσεις

logon path=\\%N\profiles\mandprofile
..
[profiles]
..
read only=Yes
vfs objects=fake_perms

Επανεκκινούμε την υπηρεσία samba και τον client υπολογιστή

Κοινόχρηστοι Φάκελοι-Εκτυπωτές

Κοινόχρηστος Φάκελος σε Server

Έστω ότι θέλουμε οι δικτυακοί samba χρήστες που ανήκουν στην ομάδα teachers να έχουν πλήρη δικαιώματα σε κάποιον κοινόχρηστο φάκελο. Στον ίδιο φάκελο θέλουμε να μην έχουν κανένα δικαίωμα οι υπόλοιποι δικτυακοί χρήστες.

Έστω ο χρήστης testteacher. Τον προσθέτουμε στην ομάδα teachers ως εξής

adduser testteacher teachers

Δημιουργούμε έναν φάκελο έστω /mnt/data/teachers

mkdir /mnt/data/teachers

Ορίζουμε την ομάδα του φακέλου ως teachers ώστε να μπορούν οι χρήστες αυτής της ομάδας να δημιουργούν φακέλους και αρχεία. Δεν δίνουμε κανένα δικαίωμα στους υπόλοιπους χρήστες ούτε καν να δουν τα περιεχόμενα

chown -R root.teachers /mnt/data/teachers
chmod -R 770 /mnt/data/teachers

Στην συνέχεια τροποποιούμε το αρχείο smb.conf ώστε να δημιουργήσουμε έναν κοινόχρηστο φάκελο έστω με όνομα teachers με τα δικαιώματα που αναφέραμε πριν

[teachers]
   path = /mnt/data/teachers
   read only = No
   create mask = 0660
   directory mask = 0770
   valid users = @teachers
   force group = teachers
   #hosts allow = 192.168.2.0/24
   #browseable = no
  • Το valid users επιτρέπει μόνο στους χρήστες της ομάδας teachers να εισέλθουν σε αυτόν τον φάκελο.
  • Οι μάσκες 0660 και 0770 είναι για να εξασφαλίσουμε ότι όλα τα αρχεία που θα δημιουργούνται θα είναι κρυφά από τον υπόλοιπο κόσμο.
  • Το force group ορίζει ομάδα των αρχείων που θα δημιουργούμε την teachers ώστε να μπορούν να διαβάζονται και να τροποποιούνται και από άλλους χρήστες αυτής της ομάδας.
  • Εάν βγάλουμε τα σχόλια από το hosts allow τότε θα επιτρέπουμε μόνο στους υπολογιστές που ανήκουν σε ένα υποδίκτυο π.χ. το 192.168.2.0/24 να δουν τα αρχεία αυτά (εφόσον βέβαια τα βλέπουν χρήστες της ομάδας teachers)
  • Εάν βγάλουμε τα σχόλια από το browseable τότε οι χρήστες δεν θα βλέπουν καν ότι υπάρχει κοινόχρηστος φάκελος με όνομα teachers. Μόνο όσοι ξέρουν το όνομά του (και ανήκουν βέβαια στην ομάδα teachers) θα μπορούν να βλέπουν τα περιεχόμενά του

Κοινόχρηστος Εκτυπωτής σε Server

Αρχικά ακολουθούμε τις οδηγίες ρύθμισης του εκτυπωτή στον server για να εμφανίζεται στην λίστα κοινόχρηστων εκτυπωτών. Εγκαθιστούμε επίσης τον οδηγό σε κάθε client. (βλ. Εκτύπωση μέσω samba).

Στην συνέχεια θα δώσουμε δικαίωμα εκτύπωσης μόνο σε μια συγκεκριμένη ομάδα, έστω στην ομάδα teachers, καθώς και στον χρήστη testuser.

Σταματάμε την υπηρεσία cups

/etc/init.d/cupsd stop

Τροποποιούμε το αρχείο /etc/cups/printers.conf. Βρίσκουμε την δήλωση του εκτυπωτή που μας ενδιαφέρει π.χ. myprinter και προσθέτουμε τις παρακάτω γραμμές

<DefaultPrinter myprinter>
..
..
AllowUser @teachers
AllowUser testuser
..
..
</Printer>

Εκκινούμε πάλι την υπηρεσία cups

/etc/init.d/cupsd start

Κοινόχρηστος Φάκελος ή Εκτυπωτής σε client

Εάν τώρα θέλουμε να κάνουμε κοινόχρηστο έναν φάκελο από έναν client υπολογιστή που είναι συνδεδεμένος στο domain μας, στον οποίο φάκελο θέλουμε να έχουν πρόσβαση μόνο οι χρήστες που ανήκουν στην ομάδα teachers τότε:

Εκτελούμε στον server την παρακάτω εντολή η οποία δημιουργεί ένα δικτυακό samba group teachers και το αντιστοιχεί στην ομάδα teachers

net groupmap add rid=2000 ntgroup="teachers" unixgroup=teachers type=d

(Το rid έχει τυχαία τιμή εδώ, αρκεί να μην συγκρούνται με κάποιο προκαθορισμένο χωρίς να το θέλουμε - βλ. http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection)/groupmapping.html#id2597511)

Στην συνέχεια

  • Συνδεόμαστε τοπικά ως υπερχρήστης στον client υπολογιστή
  • Δεξί κλικ στον φάκελο που θέλουμε να μοιράσουμε και επιλέγουμε Κοινή Χρήση και ασφάλεια.
  • Επιλέγουμε Κοινή χρήση αυτού του φακέλου και κάνουμε κλικ στο δικαιώματα
  • Διαγράφουμε την ομάδα Everyone και πατάμε προσθήκη
  • Επιλέγουμε Τύποι αντικειμένων Ομάδες
  • Στις Τοποθεσίες επιλέγουμε το όνομα του domain μας για να μας εμφανίσει τους δικτυακούς χρήστες
  • Πατάμε το κουμπί Για προχωρημένους και στο επόμενο παράθυρο το Εύρεση τώρα
  • Εισάγουμε το όνομα και των κωδικό ενός οποιουδήποτε απλού δικτυακού χρήστη που γνωρίζουμε.
  • Επιλέγουμε την ομάδα teachers και πατάμε ok
  • Στο αρχικό παράθυρο στο κάτω πλαίσιο που έχει τα δικαιώματα επιλέγουμε πλήρη έλεγχο και πατάμε ok

Πλέον και στον φάκελο αυτό έχουν δικαιώματα μόνο οι χρήστες της ομάδας teachers

Ομάδες

Για να αντιστοιχίσουμε ένα group samba σε ένα group unix μπορούμε να εκτελέσουμε π.χ.

net groupmap modify ntgroup="Domain Admins" unixgroup=ntadmin
net groupmap modify ntgroup="Domain Users" unixgroup=users
net groupmap modify ntgroup="Domain Guests" unixgroup=nobody

Τι θα πρέπει να γίνει για να προστεθούν οι Domain Users στο Power Users group? Το Power Users group είναι ένα τοπικό group σε κάθε μηχάνημα με Windows 2000/XP Professional. Δεν μπορεί να προστεθεί αυτόματα, θα πρέπει να γίνει η διαδικασία σε κάθε μηχάνημα ξεχωριστά ως εξής:

  1. Έναρξη → Πίνακας Ελέγχου → Χρήστες και Κωδικοί.
  2. Καρτέλα Για Προχωρημένους.
  3. Κλικ στο κουμπί Για Προχωρημένους.
  4. Κλικ στα Groups.
  5. Διπλό κλικ σε Power Users. Αυτό θα ξεκινήσει το παράθυρο πρόσθεσης χρηστών και group.
  6. Κλικ στο Προσθήκη.
  7. Επιλογή του Domain από το οποίο το Domain Users group θα προστεθεί.
  8. Διπλό κλικ στο Domain Users group.
  9. Κλικ στο Ok. Εάν εμφανιστεί ένα παράθυρο σύνδεσης συνδεθείτε ως DOMAIN\UserName. π.χ., για το domain MIDEARTH και τον χρήστη root ως MIDEARTH\root.

Εντολές κατά την σύνδεση

Μπορούμε να δημιουργήσουμε ένα αρχείο login.bat μέσα στον φάκελο /var/lib/samba/netlogon

Θα πρέπει να έχουμε ορίζει να διαβάζεται το αρχείο αυτό κατά το login. Για τον λόγο αυτό προσθέτουμε στην smb.conf στον τομέα [global]

logon script = login.bat

Αντιστοίχιση δίσκου δικτύου

Το αρχείο login.bat μπορεί να περιέχει τις παρακάτω γραμμές

REM Drive Mapping Script
net use U: %LOGONSERVER%\upload

Αν λοιπόν έχουμε έναν κοινόχρηστο φάκελο με όνομα upload αυτός θα αντιστοιχηθεί στο γράμμα U: στην πλευρά του client

Προχωρημένες επιλογές

Αποσφαλμάτωση - Logs

Για να εμφανιστούν πολύ περισσότερα μηνύματα αποσφαλμάτωσης ανεβάζουμε το log levelπ.χ.

 log level = 10
 log file = /usr/local/samba/lib/log.%m
 include = /usr/local/samba/lib/smb.conf.%m

Mount - Προσάρτηση στο σύστημα αρχείων

Θα πρέπει να έχει εγκατασταθεί το smbfs

aptitude install smbfs

Απο την κονσολα ως root για να προσαρτήσουμε στον φάκελο /mnt/samba τον δικτυακό φάκελο public (που επιτρέπει πρόσβαση guest) του υπολογιστή sambaserver

mkdir /mnt/samba
mount -t smbfs //sambaserver/public /mnt/samba -o username=guest

Στο παραπάνω αρχείο smb.conf υπάρχει μια καταχώρηση public Για να το ενεργοποιήσετε στο αρχείο fstab δείτε το κεφάλαιο Γενικές Ρυθμίσεις /etc/fstab

Αντιμετώπιση προβλημάτων

Δεν μπορεί να προστεθεί ο ΗΥ στο domain

Εάν μας εμφανιστεί μύνημα ότι δεν υπάρχει καταχώρηση dns στον domain controller, θα πρέπει να ελέγξουμε εάν ο ΗΥ είναι ρυθμισμένος να λαμβάνει ip και ρυθμίσεις από κάποιον router.

Θα πρέπει να απενεργοποιηθεί ο dhcp server στον router και να εγκατασταθεί υπηρεσία dhcp στον linux server

Για να επαληθεύσουμε ότι το πρόβλημα είναι όντως το παραπάνω, αρκεί να τοποθετήσουμε μια σταθερή ip στο μηχάνημα και να ξαναδοκιμάσουμε να το προσθέσουμε στο domain

Γενικά

Πρώτ' απ' όλα δοκιμάστε να επαννεκινήσετε την υπηρεσία samba

/etc/init.d/samba restart

Δοκιμάστε επίσης να εισάγετε το μηχάνημα σε μία τοπική ομάδα (π.χ. workgroup) και όχι περιοχή domain, επανεκκινήστε και ξαναδοκιμάστε

Προβλήματα εμφανίστηκαν μετά από εγκατάσταση php, mysql και apache στο μηχάνημα - πελάτη με τα Windows XP, πιθανόν από τον apache. Σε κάθε είσοδο εμφανίζεται το τοπικό αντίγραφο του προφίλ του χρήστη και όχι το αντίγραφο περιαγωγής. Για το λόγο αυτό καλό είναι να αποφύγετε την εγκατάσταση των προγραμμάτων αυτών, αφού απεγκαταστασή τους μετά δεν λύνει το πρόβλημα.

Προβλήματα μπορεί να εμφανιστούν επίσης εάν ο πελάτης ρυθμίζεται μέσω dhcp. Για το λόγο αυτό πάντα κάντε τις αρχικές δοκιμές με στατικές IPs, dns, κτλ.

Από την πλευρά του πελάτη μπορούμε να δοκιμάσουμε εντολές από την γραμμή εντολών όπως Να αντιστοιχίσουμε το home directory του linux στο drive x

net use x: /home

Επίσης μπορούμε να δούμε πληροφορίες για το πως βλέπει τον χρήστη με τον οποίον έχουμε συνδεθεί η υπηρεσία samba με την εντολή

net user yourusername /domain

Για να δούμε τις διαθέσιμες μεταβλητές περιβάλλοντος σε ένα client μηχάνημα εκτελούμε

set

Αυτές μπορούμε να τις χρησιμοποίησουμε στο login.bat

LANMAN password changed are disabled

Το μήνυμα αυτό εμφανίζεται κατά την προσπάθεια να αλλάξει ο κωδικός samba από ένα linux client μηχάνημα με την εντολή

smbpasswd -r [server]

Πηγές

Αλλαγή sid χρήστη στον server

Εάν διαγραφεί και ξαναδημιουργηθεί ένας χρήστης samba με τις εντολές

pdbedit -x -u testuser
pdbedit -a -u testuser

Θα αποκτήσει νέο sid. Αυτό μπορεί να δημιουργήσει πρόβλημα στους clients που είχε συνδεθεί ο χρήστης testuser με το παλιό sid

Εάν βρούμε το παλιό sid (έστω S-1-5-21-1367752256-2954819317-735245560-1004) μπορούμε να το χρησιμοποιήσουμε στον server με την εντολή

pdbedit -r -u testuser -U S-1-5-21-1367752256-2954819317-735245560-1004

Για να το βρούμε μπορούμε να εκτελέσουμε το regedit με δικαιώματα system ως εξής: (έστω ότι η ώρα είναι 11:19)

at 11:20 /interactive "regedit.exe"

Ψάχνουμε στην θέση HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Syncmgr\ProgressState. Υπάρχουν υποφακέλοι με τους δικτυακούς χρήστες με την τιμή του SID για τον καθένα

swat - ρύθμιση μέσω περιηγητή

Το swat είναι ένα θαυμάσιο διαδικτυακό εργαλείο για ρύθμιση samba. Η εκκίνηση του γίνεται από το inetd. Θα πρέπει να επεξεργαστούν τα αρχεία /etc/inetd.conf και /etc/services για την ενεργοποίησή του μέσω του inetd. Δείτε για λεπτομέρειες.

man swat

Για εγκατάσταση

aptitude install swat

Στο /etc/inetd.conf θα πρέπει να προστεθεί μία γραμμή όπως η παρακάτω (δεν χρειάζεται να γίνει στο Debian αφού γίνεται αυτόματα κατά την εγκατάσταση. Θα πρέπει όμως να αφαιρεθεί το σχόλιο από αυτήν, που έχει μπει για λόγους ασφαλείας)

swat stream tcp nowait.400 root /usr/sbin/swat swat

Ενεργοποιήστε το inetd να τρέχει σε κάθε εκκίνηση από τα sysvconfig ή ksysv. Για να το δοκιμάσετε άμεσα.

/etc/init.d/inetd start  

Στην συνέχεια από τον konqueror

http://localhost:901

LinNeighboorhood - πελάτης samba

Για να συνδεθείς σε ένα pc που μοιράζεται αρχεία από windows ή από Linux μέσω samba κάνε τα παρακάτω : Ξεκίνα το LinNeighborhood. Άλλαξε password και άφησε κενό το workgroup. Μετα προσάρτησε τον κοινό φάκελο. Εάν δεν δουλέψει από το Κέντρο Ελέγχου του KDE Δίκτυο/Τοπική Περιήγηση άλλαξε τις ρυθμίσεις με αυτές του τοπικού σου δικτύου

Πηγές

el/linux/debian/server/samba.txt · Last modified: Y/m/d H:i by vagk