====== 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 - Κάνε σύνδεση σε ένα μηχάνημα πελάτη ως χρήστης template και άλλαξε όπως θες το προφίλ του - Μπες στο ίδιο μηχάνημα ως διαχειριστής - Κάνε τον φάκελο C:\Documents and Settings\template κοινό για όλους - Από τον μηχάνημα εξυπηρετητή samba βρες αυτόν τον διαμοιραζόμενο φάκελο και αντέγραψέ τον στο φάκελο NetLogon σου π.χ. /var/lib/samba/netlogon, μετονομάζοντάς τον σε Default User. - Αφαίρεσε την κοινή χρήση από αυτόν τον φάκελο - Φτιάξε τώρα έναν νέο χρήστη. Το αρχικό του προφίλ θα είναι αυτό που υπάρχει στον φάκελο /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 αρχείο του οδηγού του εκτυπωτή σε κάποιον κοινόχρηστο φάκελο, ώστε με αναζήτηση να βρεθεί και να εγκατασταθεί ο οδηγός του εκτυπωτή. Για να δώσουμε μόνο σε ορισμένους χρήστες δυνατότητα εκτύπωσης (βλ. [[el:linux:debian:server:samba#s_p_s_server|Πολιτικές εκτύπωσης]]) ===== Κωδικοι ===== Πολύ σημαντικό όταν υπάρχουν 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 στην αγγλική του έκδοση [[http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=1001aaf1-749f-49f4-8010-297bd6ca33a0 | 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 που βρίσκεται [[http://www.pcc-services.com/files/winpoledit/custom.adm | εδώ]] στο poledit έχουμε πλέον περισσότερες επιλογές πολιτικών. Κάποιες από τις χρήσιμες είναι : * Default Computer - Automatic Updates - Disable Automatic Updates : Τσεκαρισμένο * Default User - Windows NT System - Disable Lock Workstation : Τσεκαρισμένο - Windows NT User Profiles - Limit Profile Size * Έχετε υπερβεί το .. * Max Profile Size : 50000 * Notify User When Profile Storage is Exceeded : Τσεκαρισμένο - Exclude Directories in Romaing Profiles * Temporary Internet Files;Temp;Application Data - Custom Windows Explorer Settings - Always Show File Extension : Τσεκαρισμένο - Custom Internet Explorer Settings - Generic IE Settings * Change Default Home Page : http://www.google.gr ==== Mandatory Profiles ==== === Προεργασία === Ένα mandatory profile (υποχρεωτικό προφίλ) είναι ένα σταθερό μη εγγράψιμο προφίλ που εφαρμόζεται στους υπάρχοντες και στους νέους χρήστες. Οποιεσδήποτε αλλαγές γίνονται κατά την διάρκεια μιας συνεδρίας διαγράφονται κατά την αποσύνδεση Αρχικά θα πρέπει να ρυθμίσουμε έναν νέο χρήστη όπως ακριβώς τον θέλουμε για το υποχρεωτικό προφίλ (βλ 2 διαδικασίες : [[http://technet.microsoft.com/en-us/library/gg241188%28v=ws.10%29.aspx|πολύπλοκη-υποστηρίζεται από MS]] ή [[http://oakdome.com/k5/tutorials/windows-7-mandatory-roaming-profile.php|ευκολότερη-χωρίς υποστήριξη από 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. (βλ. [[el:linux:debian:server:samba#ps | Εκτύπωση μέσω samba]]). Στην συνέχεια θα δώσουμε δικαίωμα εκτύπωσης μόνο σε μια συγκεκριμένη ομάδα, έστω στην ομάδα **teachers**, καθώς και στον χρήστη **testuser**. Σταματάμε την υπηρεσία cups /etc/init.d/cupsd stop Τροποποιούμε το αρχείο /etc/cups/printers.conf. Βρίσκουμε την δήλωση του εκτυπωτή που μας ενδιαφέρει π.χ. myprinter και προσθέτουμε τις παρακάτω γραμμές .. .. AllowUser @teachers AllowUser testuser .. .. Εκκινούμε πάλι την υπηρεσία 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. Δεν μπορεί να προστεθεί αυτόματα, θα πρέπει να γίνει η διαδικασία σε κάθε μηχάνημα ξεχωριστά ως εξής: - Έναρξη -> Πίνακας Ελέγχου -> Χρήστες και Κωδικοί. - Καρτέλα Για Προχωρημένους. - Κλικ στο κουμπί Για Προχωρημένους. -Κλικ στα Groups. -Διπλό κλικ σε Power Users. Αυτό θα ξεκινήσει το παράθυρο πρόσθεσης χρηστών και group. -Κλικ στο Προσθήκη. -Επιλογή του Domain από το οποίο το Domain Users group θα προστεθεί. -Διπλό κλικ στο Domain Users group. -Κλικ στο 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_-_pss_ss_s | Γενικές Ρυθμίσεις /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] Πηγές * http://www.troubleshooters.com/linux/win9x_samba.htm * bug : https://bugzilla.samba.org/show_bug.cgi?id=2128 ==== Αλλαγή 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 Δίκτυο/Τοπική Περιήγηση άλλαξε τις ρυθμίσεις με αυτές του τοπικού σου δικτύου ===== Πηγές ===== * sample conf with comments : http://www.comptechdoc.org/os/linux/manual4/smbconf.html * install : http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/install.html * book : http://oreilly.com/catalog/samba/chapter/book/index.html * quick reference : http://oreilly.com/catalog/samba/chapter/book/appc_01.html * Using Samba on Debian Linux : http://www.debian-administration.org/articles/340 * File Server configuration : http://www.debianadmin.com/file-server-configuration-in-debian-using-samba.html * Quick setup : http://www.debianhelp.co.uk/samba.htm * sync passwords * http://jaka.kubje.org/infodump/2007-05-14-unix-samba-password-sync-on-debian-etch/ * http://www.pubbs.net/201001/samba/48633-samba-change-ad-user-password-from-linux.html * pam : http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/pam.html * winbind : http://www.hantslug.org.uk/wiki/LinuxHints/SambaAuth * http://www.linuxtopia.org/online_books/network_administration_guides/samba_reference_guide/35_pam_12.html * login script : * http://home.arcor.de/36bit/samba_script.html * http://www.eggheadcafe.com/forumarchives/scriptingscriptlets/Sep2005/post23529788.asp * quotas : * http://www.opensubscriber.com/message/samba@lists.samba.org/2596160.html * policies : * general : http://wiki.samba.org/index.php/Implementing_System_Policies_with_Samba * custom : http://www.pcc-services.com/custom_poledit.html * Group Policy backup-restore * https://blogs.technet.microsoft.com/secguide/2016/01/21/lgpo-exe-local-group-policy-object-utility-v1-0/ * https://www.eightforums.com/tutorials/46721-local-group-policy-backup-restore-windows.html * http://woshub.com/backupimport-local-group-policy-settings/ * Reset to default : http://www.thewindowsclub.com/reset-all-group-policy-settings-to-default * Group Policy edit * http://tweaks.com/windows/40075/install-group-policy-and-ad-tools-on-windows-7/ * https://wiki.samba.org/index.php/Windows_folder_redirection * http://woshub.com/reset-local-group-policies-settings-in-windows/ * https://gallery.technet.microsoft.com/scriptcenter/Read-or-modify-Registrypol-778fed6e * https://www.autoitscript.com/forum/topic/141076-registry-policy-file-editor/ * https://blogs.msdn.microsoft.com/dsadsi/2009/07/23/working-with-group-policy-objects-programmatically-simple-c-example-illustrating-how-to-modify-a-registry-based-policy/ * desktop.ini * Μεταφράσεις φακέλων προφίλ : https://forum.synology.com/enu/viewtopic.php?t=76068 * group rights * http://www.devshed.com/c/a/Administration/Authorizing-Users-in-Samba/2/ * printing : * http://forums.gentoo.org/viewtopic.php?t=110931 * http://www.openprinting.org/download/kpfeifle/LinuxKongress2002/Tutorial/IX.CUPS-Samba/IX.Samba-HOWTO-Collection-Chapter-7.html * http://tldp.org/HOWTO/Debian-and-Windows-Shared-Printing/sharing_with_windows.html * https://help.ubuntu.com/community/SettingUpSamba#Sharing%20CUPS%20Printers * groups * http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/groupmapping.html * http://www.osnews.com/story/6684 * smb.conf examples: * http://samba.org/samba/docs/man/Samba-Guide/Big500users.html * net command : * http://book.opensourceproject.org.cn/sysadmin/samba/sambao3rd/opensource/0596007698/samba3-chp-11-sect-5.html * http://searchenterpriselinux.techtarget.com/tip/Samba-Management-Configuration-with-the-net-utility-part-two * http://www.google.gr/url?sa=t&source=web&cd=9&ved=0CFQQFjAI&url=http%3A%2F%2Fwww.sambaxp.org%2Ffiles%2FSambaXP2008-DATA%2F01-07-Guenther_Deschner-joining_a_domain.pdf&rct=j&q=%20net%20rpc%20join%20remote%20machine&ei=yNyUTI_EGNHCswbkuqRk&usg=AFQjCNGxcXoI5nshmJbfvmoKooWIdJdm9w&sig2=bybnr44NFq63f9U9RZG9LQ&cad=rja * (βλ. section DOM JOIN) http://www.samba.org/samba/docs/man/manpages-3/net.8.html * kixtart * folder redirection * http://www.samba.org/samba/docs/man/Samba-Guide/nw4migration.html#ch8kix * http://www.mail-archive.com/samba@lists.samba.org/msg110021.html * http://ubuntuforums.org/showthread.php?t=1525702 * profile size * http://technet.microsoft.com/en-us/library/cc959453.aspx * mandatory profiles * Default profile (easy, unsupported, non sysprep) : http://oakdome.com/k5/tutorials/windows-7-mandatory-roaming-profile.php * Default profile (hard, supported, sysprep): http://technet.microsoft.com/en-us/library/gg241188%28v=ws.10%29.aspx * unsupported methods : http://blogs.technet.com/b/deploymentguys/archive/2009/10/29/configuring-default-user-settings-full-update-for-windows-7-and-windows-server-2008-r2.aspx * windows server as a client * http://www.elmajdal.net/WindowsServer/How_To_Join_Windows_Server_2012_To_a_Domain.aspx * https://wiki.samba.org/index.php/Joining_a_Windows_Server_2012_/_2012_R2_DC_to_a_Samba_AD * Multi user licence * http://download.microsoft.com/download/6/C/5/6C576C0C-F740-48E2-86E1-25B15BE23879/windows_multi_user.docx * samba 4 - Windows 8 / 10 * https://wiki.samba.org/index.php/Setup_a_Samba_Active_Directory_Domain_Controller * https://wiki.samba.org/index.php/Samba_AD_DC_Troubleshooting * https://wiki.samba.org/index.php/Samba4/InitScript * https://www.multifake.net/2013/01/windows-8-not-joining-certain-samba-domains/ * https://wiki.samba.org/index.php/Joining_a_Windows_client_to_a_domain * http://tam.belchenstuermer.de/join-a-samba-domain-with-dot-in-its-name-using-windows-8-1/ * https://www.petri.com/configure_tcp_ip_from_cmd * http://www.thewindowsclub.com/disable-ipv6-5-second-boot-delay * http://samba.2283325.n4.nabble.com/Windows-10-in-Samba-3-domain-netlogon-share-access-denied-td4687451.html * samba 4.5 * xp connect : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866204 * Upgrade to Samba AD * https://wiki.samba.org/index.php/Migrating_a_Samba_NT4_Domain_to_Samba_AD_(Classic_Upgrade) * Latest samba installation and configuration * https://adamtheautomator.com/samba-active-directory/ * Sample installation (see workaround 2 new ubuntu 22 installation) : https://doc.zentyal.org/7.0/en/workaround-windows11.html * Migrate to new installation * in theory : https://chat.openai.com/share/fc948e79-c53b-42e8-9f7f-a99c15b6d52b * samba users : https://serverfault.com/questions/74370/how-to-migrate-samba-user-accounts-to-a-new-linux-server * https://samba.samba.narkive.com/RiYLoY7N/how-to-migrate-active-directory-from-one-4-server-to-another * PDC/BDC : https://linux.samba.narkive.com/nVpzElVl/samba-samba-migration-to-a-new-server * https://groups.google.com/g/linux.samba/c/4zHdXBhQtzo?pli=1