SAMBA Project Documentation

Edited by

Jelmer R. Vernooij

John H. Terpstra

Gerald (Jerry) Carter

Monday April 21, 2003

Abstract

This book is a collection of HOWTOs added to Samba documentation over the years. Samba is always under development, and so is its' documentation. This release of the documentation represents a major revision or layout as well as contents. The most recent version of this document can be found at http://www.samba.org/ on the "Documentation" page. Please send updates to Jelmer Vernooij, John H. Terpstra or Gerald (Jerry) Carter.

The Samba-Team would like to express sincere thanks to the many people who have with or without their knowledge contributed to this update. The size and scope of this project would not have been possible without significant community contribution. A not insignificant number of ideas for inclusion (if not content itself) has been obtained from a number of Unofficial HOWTOs - to each such author a big "Thank-you" is also offered. Please keep publishing your Unofficial HOWTOs - they are a source of inspiration and application knowledge that is most to be desired by many Samba users and administrators.


Table of Contents

Legal Notice
Attributions
I. General Installation
1. Introduction to Samba
Background
Terminology
Related Projects
SMB Methodology
Epilogue
Miscellaneous
2. How to Install and Test SAMBA
Obtaining and Installing Samba
Configuring Samba (smb.conf)
Configuration file syntax
Example Configuration
SWAT
List Shares Available on the Server
Connect with a UNIX Client
Connect from a Remote SMB Client
What If Things Don't Work?
Common Errors
Large Number of smbd Processes
Error Message: open_oplock_ipc
The network name cannot be found
3. Fast Start for the Impatient
Note
II. Server Configuration Basics
4. Server Types and Security Modes
Features and Benefits
Server Types
Samba Security Modes
User Level Security
Share Level Security
Domain Security Mode (User Level Security)
ADS Security Mode (User Level Security)
Server Security (User Level Security)
Password Checking
Common Errors
What Makes Samba a Server?
What Makes Samba a Domain Controller?
What Makes Samba a Domain Member?
Constantly Losing Connections to Password Server
5. Domain Control
Features and Benefits
Basics of Domain Control
Domain Controller Types
Preparing for Domain Control
Domain Control Example Configuration
Samba ADS Domain Control
Domain and Network Logon Configuration
Domain Network Logon Service
Security Mode and Master Browsers
Common Errors
$ Cannot Be Included in Machine Name
Joining Domain Fails Because of Existing Machine Account
The System Cannot Log You On (C000019B)
The Machine Trust Account Is Not Accessible
Account Disabled
Domain Controller Unavailable
Cannot Log onto Domain Member Workstation After Joining Domain
6. Backup Domain Control
Features and Benefits
Essential Background Information
MS Windows NT4-style Domain Control
LDAP Configuration Notes
Active Directory Domain Control
What Qualifies a Domain Controller on the Network?
How does a Workstation find its Domain Controller?
Backup Domain Controller Configuration
Example Configuration
Common Errors
Machine Accounts Keep Expiring
Can Samba Be a Backup Domain Controller to an NT4 PDC?
How Do I Replicate the smbpasswd File?
Can I Do This All with LDAP?
7. Domain Membership
Features and Benefits
MS Windows Workstation/Server Machine Trust Accounts
Manual Creation of Machine Trust Accounts
Managing Domain Machine Accounts using NT4 Server Manager
On-the-Fly Creation of Machine Trust Accounts
Making an MS Windows Workstation or Server a Domain Member
Domain Member Server
Joining an NT4-type Domain with Samba-3
Why Is This Better Than security = server?
Samba ADS Domain Membership
Configure smb.conf
Configure /etc/krb5.conf
Create the Computer Account
Testing Server Setup
Testing with smbclient
Notes
Sharing User ID Mappings between Samba Domain Members
Common Errors
Cannot Add Machine Back to Domain
Adding Machine to Domain Fails
I Can't Join a Windows 2003 PDC
8. Stand-alone Servers
Features and Benefits
Background
Example Configuration
Reference Documentation Server
Central Print Serving
Common Errors
9. MS Windows Network Configuration Guide
Note
III. Advanced Configuration
10. Network Browsing
Features and Benefits
What Is Browsing?
Discussion
NetBIOS over TCP/IP
TCP/IP without NetBIOS
DNS and Active Directory
How Browsing Functions
Configuring WORKGROUP Browsing
DOMAIN Browsing Configuration
Forcing Samba to Be the Master
Making Samba the Domain Master
Note about Broadcast Addresses
Multiple Interfaces
Use of the Remote Announce Parameter
Use of the Remote Browse Sync Parameter
WINS The Windows Internetworking Name Server
WINS Server Configuration
WINS Replication
Static WINS Entries
Helpful Hints
Windows Networking Protocols
Name Resolution Order
Technical Overview of Browsing
Browsing Support in Samba
Problem Resolution
Cross-Subnet Browsing
Common Errors
How Can One Flush the Samba NetBIOS Name Cache without Restarting Samba?
Server Resources Can Not Be Listed
I get an `Unable to browse the network' error
Browsing of Shares and Directories is Very Slow
11. Account Information Databases
Features and Benefits
Backward Compatibility Backends
New Backends
Technical Information
Important Notes About Security
Mapping User Identifiers between MS Windows and UNIX
Mapping Common UIDs/GIDs on Distributed Machines
Account Management Tools
The smbpasswd Command
The pdbedit Command
Password Backends
Plaintext
smbpasswd Encrypted Password Database
tdbsam
ldapsam
MySQL
XML
Common Errors
Users Cannot Logon
Users Being Added to the Wrong Backend Database
Configuration of auth methods
12. Group Mapping MS Windows and UNIX
Features and Benefits
Discussion
Default Users, Groups and Relative Identifiers
Example Configuration
Configuration Scripts
Sample smb.conf Add Group Script
Script to Configure Group Mapping
Common Errors
Adding Groups Fails
Adding MS Windows Groups to MS Windows Groups Fails
Adding Domain Users to the Power Users Group
13. File, Directory and Share Access Controls
Features and Benefits
File System Access Controls
MS Windows NTFS Comparison with UNIX File Systems
Managing Directories
File and Directory Access Control
Share Definition Access Controls
User and Group-Based Controls
File and Directory Permissions-Based Controls
Miscellaneous Controls
Access Controls on Shares
Share Permissions Management
MS Windows Access Control Lists and UNIX Interoperability
Managing UNIX Permissions Using NT Security Dialogs
Viewing File Security on a Samba Share
Viewing File Ownership
Viewing File or Directory Permissions
Modifying File or Directory Permissions
Interaction with the Standard Samba create mask Parameters
Interaction with the Standard Samba File Attribute Mapping
Common Errors
Users Cannot Write to a Public Share
File Operations Done as root with force user Set
MS Word with Samba Changes Owner of File
14. File and Record Locking
Features and Benefits
Discussion
Opportunistic Locking Overview
Samba Opportunistic Locking Control
Example Configuration
MS Windows Opportunistic Locking and Caching Controls
Workstation Service Entries
Server Service Entries
Persistent Data Corruption
Common Errors
locking.tdb Error Messages
Problems Saving Files in MS Office on Windows XP
Long Delays Deleting Files Over Network with XP SP1
Additional Reading
15. Securing Samba
Introduction
Features and Benefits
Technical Discussion of Protective Measures and Issues
Using Host-Based Protection
User-Based Protection
Using Interface Protection
Using a Firewall
Using IPC$ Share-Based Denials
NTLMv2 Security
Upgrading Samba
Common Errors
Smbclient Works on Localhost, but the Network Is Dead
Why Can Users Access Home Directories of Other Users?
16. Interdomain Trust Relationships
Features and Benefits
Trust Relationship Background
Native MS Windows NT4 Trusts Configuration
Creating an NT4 Domain Trust
Completing an NT4 Domain Trust
Inter-Domain Trust Facilities
Configuring Samba NT-Style Domain Trusts
Samba as the Trusted Domain
Samba as the Trusting Domain
NT4-Style Domain Trusts with Windows 2000
Common Errors
17. Hosting a Microsoft Distributed File System tree on Samba
Features and Benefits
Common Errors
MSDFS UNIX Path Is Case-Critical
18. Classical Printing Support
Features and Benefits
Technical Introduction
Client to Samba Print Job Processing
Printing Related Configuration Parameters
Simple Print Configuration
Verifing Configuration with testparm
Rapid Configuration Validation
Extended Printing Configuration
Detailed Explanation Settings
Printing Developments Since Samba-2.2
Point'n'Print Client Drivers on Samba Servers
The Obsoleted [printer$] Section
Creating the [print$] Share
[print$] Section Parameters
The [print$] Share Directory
Installing Drivers into [print$]
Add Printer Wizard Driver Installation
Installing Print Drivers Using rpcclient
Client Driver Installation Procedure
First Client Driver Installation
Setting Device Modes on New Printers
Additional Client Driver Installation
Always Make First Client Connection as root or printer admin
Other Gotchas
Setting Default Print Options for Client Drivers
Supporting Large Numbers of Printers
Adding New Printers with the Windows NT APW
Error Message: Cannot connect under a different Name
Take Care When Assembling Driver Files
Samba and Printer Ports
Avoiding Common Client Driver Misconfiguration
The Imprints Toolset
What is Imprints?
Creating Printer Driver Packages
The Imprints Server
The Installation Client
Adding Network Printers without User Interaction
The addprinter Command
Migration of Classical Printing to Samba
Publishing Printer Information in Active Directory or LDAP
Common Errors
I Give My Root Password but I Do Not Get Access
My Print Jobs Get Spooled into the Spooling Directory, but Then Get Lost
19. CUPS Printing Support
Introduction
Features and Benefits
Overview
Basic CUPS Support Configuration
Linking smbd with libcups.so
Simple smb.conf Settings for CUPS
More Complex CUPS smb.conf Settings
Advanced Configuration
Central Spooling vs. Peer-to-Peer Printing
Raw Print Serving Vendor Drivers on Windows Clients
Installation of Windows Client Drivers
Explicitly Enable raw Printing for application/octet-stream
Driver Upload Methods
Advanced Intelligent Printing with PostScript Driver Download
GDI on Windows -- PostScript on UNIX
Windows Drivers, GDI and EMF
UNIX Printfile Conversion and GUI Basics
PostScript and Ghostscript
Ghostscript the Software RIP for Non-PostScript Printers
PostScript Printer Description (PPD) Specification
Using Windows-Formatted Vendor PPDs
CUPS Also Uses PPDs for Non-PostScript Printers
The CUPS Filtering Architecture
MIME Types and CUPS Filters
MIME Type Conversion Rules
Filtering Overview
Prefilters
pstops
pstoraster
imagetops and imagetoraster
rasterto [printers specific]
CUPS Backends
The Role of cupsomatic/foomatic
The Complete Picture
mime.convs
Raw Printing
application/octet-stream Printing
PostScript Printer Descriptions (PPDs) for Non-PS Printers
cupsomatic/foomatic-rip Versus native CUPS Printing
Examples for Filtering Chains
Sources of CUPS Drivers/PPDs
Printing with Interface Scripts
Network Printing (Purely Windows)
From Windows Clients to an NT Print Server
Driver Execution on the Client
Driver Execution on the Server
Network Printing (Windows Clients UNIX/Samba Print Servers)
From Windows Clients to a CUPS/Samba Print Server
Samba Receiving Jobfiles and Passing Them to CUPS
Network PostScript RIP
PPDs for Non-PS Printers on UNIX
PPDs for Non-PS Printers on Windows
Windows Terminal Servers (WTS) as CUPS Clients
Printer Drivers Running in Kernel Mode Cause Many Problems
Workarounds Impose Heavy Limitations
CUPS: A Magical Stone?
PostScript Drivers with No Major Problems Even in Kernel Mode
Configuring CUPS for Driver Download
cupsaddsmb: The Unknown Utility
Prepare Your smb.conf for cupsaddsmb
CUPS PostScript Driver for Windows NT/200x/XP
Recognizing Different Driver Files
Acquiring the Adobe Driver Files
ESP Print Pro PostScript Driver for Windows NT/200x/XP
Caveats to be Considered
Windows CUPS PostScript Driver Versus Adobe Driver
Run cupsaddsmb (Quiet Mode)
Run cupsaddsmb with Verbose Output
Understanding cupsaddsmb
How to Recognize If cupsaddsmb Completed Successfully
cupsaddsmb with a Samba PDC
cupsaddsmb Flowchart
Installing the PostScript Driver on a Client
Avoiding Critical PostScript Driver Settings on the Client
Installing PostScript Driver Files Manually Using rpcclient
A Check of the rpcclient man Page
Understanding the rpcclient man Page
Producing an Example by Querying a Windows Box
Requirements for adddriver and setdriver to Succeed
Manual Driver Installation in 15 Steps
Troubleshooting Revisited
The Printing *.tdb Files
Trivial Database Files
Binary Format
Losing *.tdb Files
Using tdbbackup
CUPS Print Drivers from Linuxprinting.org
foomatic-rip and Foomatic Explained
foomatic-rip and Foomatic-PPD Download and Installation
Page Accounting with CUPS
Setting Up Quotas
Correct and Incorrect Accounting
Adobe and CUPS PostScript Drivers for Windows Clients
The page_log File Syntax
Possible Shortcomings
Future Developments
Additional Material
Auto-Deletion or Preservation of CUPS Spool Files
CUPS Configuration Settings Explained
Pre-Conditions
Manual Configuration
Printing from CUPS to Windows Attached Printers
More CUPS-Filtering Chains
Common Errors
Windows 9x/ME Client Can't Install Driver
cupsaddsmb Keeps Asking for Root Password in Never-ending Loop
cupsaddsmb Errors
Client Can't Connect to Samba Printer
New Account Reconnection from Windows 200x/XP Troubles
Avoid Being Connected to the Samba Server as the Wrong User
Upgrading to CUPS Drivers from Adobe Drivers
Can't Use cupsaddsmb on Samba Server Which Is a PDC
Deleted Windows 200x Printer Driver Is Still Shown
Windows 200x/XP "Local Security Policies"
Administrator Cannot Install Printers for All Local Users
Print Change Notify Functions on NT-clients
WinXP-SP1
Print Options for All Users Can't Be Set on Windows 200x/XP
Most Common Blunders in Driver Settings on Windows Clients
cupsaddsmb Does Not Work with Newly Installed Printer
Permissions on /var/spool/samba/ Get Reset After Each Reboot
Print Queue Called lp Mis-handles Print Jobs
Location of Adobe PostScript Driver Files for cupsaddsmb
Overview of the CUPS Printing Processes
20. Stackable VFS modules
Features and Benefits
Discussion
Included Modules
audit
extd_audit
fake_perms
recycle
netatalk
VFS Modules Available Elsewhere
DatabaseFS
vscan
21. Winbind: Use of Domain Accounts
Features and Benefits
Introduction
What Winbind Provides
Target Uses
How Winbind Works
Microsoft Remote Procedure Calls
Microsoft Active Directory Services
Name Service Switch
Pluggable Authentication Modules
User and Group ID Allocation
Result Caching
Installation and Configuration
Introduction
Requirements
Testing Things Out
Conclusion
Common Errors
NSCD Problem Warning
Winbind Is Not Resolving Users and Groups
22. Advanced Network Management
Features and Benefits
Remote Server Administration
Remote Desktop Management
Remote Management from NoMachine.Com
Network Logon Script Magic
Adding Printers without User Intervention
23. System and Account Policies
Features and Benefits
Creating and Managing System Policies
Windows 9x/ME Policies
Windows NT4-Style Policy Files
MS Windows 200x/XP Professional Policies
Managing Account/User Policies
Management Tools
Samba Editreg Toolset
Windows NT4/200x
Samba PDC
System Startup and Logon Processing Overview
Common Errors
Policy Does Not Work
24. Desktop Profile Management
Features and Benefits
Roaming Profiles
Samba Configuration for Profile Handling
Windows Client Profile Configuration Information
Sharing Profiles between W9x/Me and NT4/200x/XP Workstations
Profile Migration from Windows NT4/200x Server to Samba
Mandatory Profiles
Creating and Managing Group Profiles
Default Profile for Windows Users
MS Windows 9x/Me
MS Windows NT4 Workstation
MS Windows 200x/XP
Common Errors
Configuring Roaming Profiles for a Few Users or Groups
Cannot Use Roaming Profiles
Changing the Default Profile
25. PAM-Based Distributed Authentication
Features and Benefits
Technical Discussion
PAM Configuration Syntax
Example System Configurations
smb.conf PAM Configuration
Remote CIFS Authentication Using winbindd.so
Password Synchronization Using pam_smbpass.so
Common Errors
pam_winbind Problem
Winbind Is Not Resolving Users and Groups
26. Integrating MS Windows Networks with Samba
Features and Benefits
Background Information
Name Resolution in a Pure UNIX/Linux World
/etc/hosts
/etc/resolv.conf
/etc/host.conf
/etc/nsswitch.conf
Name Resolution as Used within MS Windows Networking
The NetBIOS Name Cache
The LMHOSTS File
HOSTS File
DNS Lookup
WINS Lookup
Common Errors
Pinging Works Only in One Way
Very Slow Network Connections
Samba Server Name Change Problem
27. Unicode/Charsets
Features and Benefits
What Are Charsets and Unicode?
Samba and Charsets
Conversion from Old Names
Japanese Charsets
Common Errors
CP850.so Can't Be Found
28. Samba Backup Techniques
Note
Features and Benefits
29. High Availability Options
Note
IV. Migration and Updating
30. Upgrading from Samba-2.x to Samba-3.0.0
Quick Migration Guide
New Features in Samba-3
Configuration Parameter Changes
Removed Parameters
New Parameters
Modified Parameters (Changes in Behavior):
New Functionality
Databases
Changes in Behavior
Charsets
Passdb Backends and Authentication
LDAP
31. Migration from NT4 PDC to Samba-3 PDC
Planning and Getting Started
Objectives
Steps in Migration Process
Migration Options
Planning for Success
Samba-3 Implementation Choices
32. SWAT The Samba Web Administration Tool
Features and Benefits
Guidelines and Technical Tips
Validate SWAT Installation
Enabling SWAT for Use
Securing SWAT through SSL
Enabling SWAT Internationalization Support
Overview and Quick Tour
The SWAT Home Page
Global Settings
Share Settings
Printers Settings
The SWAT Wizard
The Status Page
The View Page
The Password Change Page
V. Troubleshooting
33. The Samba Checklist
Introduction
Assumptions
The Tests
34. Analyzing and Solving Samba Problems
Diagnostics Tools
Debugging with Samba Itself
Tcpdump
Ethereal
The Windows Network Monitor
Useful URLs
Getting Mailing List Help
How to Get Off the Mailing Lists
35. Reporting Bugs
Introduction
General Information
Debug Levels
Internal Errors
Attaching to a Running Process
Patches
VI. Appendixes
36. How to Compile Samba
Access Samba Source Code via CVS
Introduction
CVS Access to samba.org
Accessing the Samba Sources via rsync and ftp
Verifying Samba's PGP Signature
Building the Binaries
Compiling Samba with Active Directory Support
Starting the smbd and nmbd
Starting from inetd.conf
Alternative: Starting smbd as a Daemon
37. Portability
HPUX
SCO UNIX
DNIX
Red Hat Linux
AIX
Sequential Read Ahead
Solaris
Locking Improvements
Winbind on Solaris 9
38. Samba and Other CIFS Clients
Macintosh Clients
OS2 Client
Configuring OS/2 Warp Connect or OS/2 Warp 4
Configuring Other Versions of OS/2
Printer Driver Download for OS/2 Clients
Windows for Workgroups
Latest TCP/IP Stack from Microsoft
Delete .pwl Files After Password Change
Configuring Windows for Workgroups Password Handling
Password Case Sensitivity
Use TCP/IP as Default Protocol
Speed Improvement
Windows 95/98
Speed Improvement
Windows 2000 Service Pack 2
Windows NT 3.1
39. Samba Performance Tuning
Comparisons
Socket Options
Read Size
Max Xmit
Log Level
Read Raw
Write Raw
Slow Logins
Client Tuning
Samba Performance Problem Due to Changing Linux Kernel
Corrupt tdb Files
40. DNS and DHCP Configuration Guide
Note
41. Further Resources
Websites
Related updates from Microsoft
Index

List of Figures

5.1. An Example Domain.
10.1. Cross-Subnet Browsing Example.
11.1. IDMAP: Resolution of SIDs to UIDs.
11.2. IDMAP: Resolution of UIDs to SIDs.
12.1. IDMAP: group SID to GID resolution.
12.2. IDMAP: GID resolution to matching SID.
12.3. IDMAP storing group mappings.
13.1. Overview of UNIX permissions field.
16.1. Trusts overview.
19.1. Windows printing to a local printer.
19.2. Printing to a PostScript printer.
19.3. Ghostscript as a RIP for non-postscript printers.
19.4. Pre-filtering in CUPS to form PostScript.
19.5. Adding device-specific print options.
19.6. PostScript to intermediate raster format.
19.7. CUPS-raster production using Ghostscript.
19.8. Image format to CUPS-raster format conversion.
19.9. Raster to printer-specific formats.
19.10. cupsomatic/foomatic Processing versus Native CUPS.
19.11. PDF to socket chain.
19.12. PDF to USB chain.
19.13. Print driver execution on the client.
19.14. Print driver execution on the server.
19.15. Printing via CUPS/Samba server.
19.16. cupsaddsmb flowchart.
19.17. Filtering chain 1.
19.18. Filtering chain with cupsomatic
19.19. CUPS printing overview.
34.1. Starting a capture.
34.2. Main ethereal data window.

List of Tables

6.1. Domain Backend Account Distribution Options
7.1. Assumptions
10.1. Browse Subnet Example 1
10.2. Browse Subnet Example 2
10.3. Browse Subnet Example 3
10.4. Browse Subnet Example 4
11.1. Attributes in the sambaSamAccount objectclass (LDAP) Part A
11.2. Attributes in the sambaSamAccount objectclass (LDAP) Part B
11.3. Possible ldap passwd sync values
11.4. Basic smb.conf options for MySQL passdb backend
11.5. MySQL field names for MySQL passdb backend
12.1. Well-Known User Default RIDs
13.1. Managing Directories with UNIX and Windows
13.2. User and Group Based Controls
13.3. File and Directory Permission Based Controls
13.4. Other Controls
18.1. Default Printing Settings
19.1. PPDs shipped with CUPS
20.1. Extended Auditing Log Information
24.1. User Shell Folder Registry Keys Default Values
24.2. Defaults of Profile Settings Registry Keys
24.3. Defaults of Default User Profile Paths Registry Keys
25.1. Options recognized by pam_smbpass
26.1. Unique NetBIOS Names
26.2. Group Names
30.1. TDB File Descriptions
31.1. The Three Major Site Types
31.2. Nature of the Conversion Choices

List of Examples

2.1. A minimal smb.conf
2.2. Another simple smb.conf File
5.1. smb.conf for being a PDC
5.2. smb.conf for being a PDC
6.1. Minimal smb.conf for a PDC in Use With a BDC LDAP Server on PDC.
6.2. Multiple LDAP Servers in smb.conf
6.3. Minimal setup for being a BDC
8.1. smb.conf for Reference Documentation Server
8.2. smb.conf for Anonymous Printing
10.1. Domain Master Browser smb.conf
10.2. Local master browser smb.conf
10.3. smb.conf for not being a Master Browser
10.4. Local Master Browser smb.conf
10.5. smb.conf for not being a master browser
11.1. Example configuration with the LDAP idmap backend
11.2. Configuration with LDAP
11.3. Example configuration for the MySQL passdb backend
12.1. smbgrpadd.sh
12.2. Configuration of smb.conf for the add group script.
12.3. Script to Set Group Mapping
13.1. Example File
14.1. Share with some files oplocked
14.2. Configuration with oplock break contention limit
17.1. smb.conf with DFS configured
18.1. Simple configuration with BSD printing
18.2. Extended BSD Printing Configuration
18.3. [print\$] example
19.1. Simplest printing-related smb.conf
19.2. Overriding global CUPS settings for one printer
19.3. smb.conf for cupsaddsmb usage
20.1. smb.conf with VFS modules
20.2. smb.conf with multiple VFS modules
21.1. smb.conf for Winbind set-up
33.1. smb.conf with [tmp] share
33.2. Configuration for only allowing connections from a certain subnet
33.3. Configuration for allowing connections from a certain subnet and localhost
38.1. Minimal profile share