[Samba] Samba as ADS Fileserver
Warwick Bruce Chapman
warwick at thusa.co.za
Tue Jun 28 20:10:22 GMT 2005
Dear All
I've been working at building a file server to provide file sharing for a
Windows 2003 Active Directory Domain.
Our requirements are for the Windows Server Administrator to be able to create
all the users' home folders in the Samba share and apply restrictive
permissions. Ie. User joe, //samba/joe$ or //samba/share/joe (Dfs), with
permissions for only the user "joe" and "domain admins".
So basically, is what I am trying to do possible? Can I configure Samba so that
an MCSE can create a folder on the a samba share (Dfs) and assign that user
rights to the folder via the "Permissions" tab of the folder properties dialog?
Ie. Can it be setup so clickety-clickers can manage the permissions and create
new folders within a Dfs share?
So far, I have:
- mit-krb5 1.4 successfully compiled and configured, and has been successfully
authenticated to the realm with kinit.
- samba 3.0.14a successfully compiled with ADS, IDMAP, ACL, LDAP, Winbind,
MS-Dfs and Krb5 support. (smb.conf/output of smbd -b is attached)
** I'm experiencing odd behaviour from the ACL support, where when I use the
Windows "Permissions" tab on a share or folder within a share, and changes I
make are lost on clicking the Apply button. Like Windows is not allowed to
write ACLs back to the linux box. **
- kernel, filesystem (mounted acl,user_attr) and library support for POSIX ACLs.
smbd -b | grep ACL returns the two flags confirming samba acl support. Confirmed
that the setfacl and getfacl commands work. Output from from mount command:
/dev/md0 / reiserfs defaults,acl,user_xattr 1 1
- nsswitch.conf configured:
passwd: compat winbind
shadow: compat
group: compat winbind
- a public share for testing which is root:users 755. I couldn't browse to it as
Administrator from the Windows 2003 Server if it was 750. Must I user the
username map functionality at all?
- tried to configure a Dfs share, but I think it may not be the same sort of
thing I used to use in Windows 2000. In Windows 2000 I used a root Dfs share
in order to share on directory, eg. \\server\users$, and in that directory each
user's home directory existed with their specific permissions.
- wbinfo -t returns: "checking the trust secret via RPC calls succeeded"
- wbinfo -u returns: "Error looking up domain users"
** I'm assuming this is where the error is? Is it that winbind cannot list the
users therefore when a Windows user connects, Samba think that user does not
exist and boots it for lack of permission? **
- wbinfo -g returns the AD groups:
BUILTIN/system operators
BUILTIN/replicators
BUILTIN/guests
BUILTIN/power users
BUILTIN/print operators
BUILTIN/administrators
BUILTIN/account operators
BUILTIN/backup operators
BUILTIN/users
domain computers
domain controllers
schema admins
enterprise admins
domain admins
domain users
domain guests
group policy creator owners
dnsupdateproxy
call_centre
finance
Ciao
Warwick Chapman
Marketing and Operations
Thusa Business Support cc
Cellular: +27 83 7797 094
Telephone: +27 31 563 1180
Facsimile: +27 31 563 1182
Website: http://www.thusa.co.za
-- There are 10 types of people in this world. Those who understand binary, and
those who don't.
----------------------------------------------------------------
Sent with Thusa Internet Gateway Services http://www.thusa.co.za
-------------- next part --------------
Build environment:
Built by: root at box
Built on: Tue Jun 28 18:30:01 SAST 2005
Built using: gcc
Build host: Linux box 2.6.11.8thusa #2 SMP Mon Jun 27 23:34:28 SAST 2005 i686 unknown
SRCDIR: /tmp/samba-3.0.14a/source
BUILDDIR: /tmp/samba-3.0.14a/source
Paths:
SBINDIR: /usr/sbin
BINDIR: /usr/bin
SWATDIR: /usr/share/swat
CONFIGFILE: /etc/samba/smb.conf
LOGFILEBASE: /var/log/samba
LMHOSTSFILE: /etc/samba/lmhosts
LIBDIR: /usr/lib/samba
SHLIBEXT: so
LOCKDIR: /var/cache/samba
PIDDIR: /var/run
SMB_PASSWD_FILE: /etc/samba/private/smbpasswd
PRIVATE_DIR: /etc/samba/private
System Headers:
HAVE_SYS_ACL_H
HAVE_SYS_CDEFS_H
HAVE_SYS_FCNTL_H
HAVE_SYS_IOCTL_H
HAVE_SYS_IPC_H
HAVE_SYS_MMAN_H
HAVE_SYS_MOUNT_H
HAVE_SYS_PARAM_H
HAVE_SYS_QUOTA_H
HAVE_SYS_RESOURCE_H
HAVE_SYS_SELECT_H
HAVE_SYS_SHM_H
HAVE_SYS_SOCKET_H
HAVE_SYS_STATFS_H
HAVE_SYS_STATVFS_H
HAVE_SYS_STAT_H
HAVE_SYS_SYSCALL_H
HAVE_SYS_SYSLOG_H
HAVE_SYS_SYSMACROS_H
HAVE_SYS_TIME_H
HAVE_SYS_TYPES_H
HAVE_SYS_UNISTD_H
HAVE_SYS_VFS_H
HAVE_SYS_WAIT_H
HAVE_SYS_XATTR_H
Headers:
HAVE_ARPA_INET_H
HAVE_ASM_TYPES_H
HAVE_ATTR_XATTR_H
HAVE_COM_ERR_H
HAVE_CTYPE_H
HAVE_DIRENT_H
HAVE_DLFCN_H
HAVE_EXECINFO_H
HAVE_FCNTL_H
HAVE_GLOB_H
HAVE_GRP_H
HAVE_GSSAPI_GSSAPI_GENERIC_H
HAVE_GSSAPI_GSSAPI_H
HAVE_INTTYPES_H
HAVE_KRB5_H
HAVE_LANGINFO_H
HAVE_LASTLOG_H
HAVE_LBER_H
HAVE_LDAP_H
HAVE_LIMITS_H
HAVE_LOCALE_H
HAVE_MEMORY_H
HAVE_MNTENT_H
HAVE_NETINET_IN_SYSTM_H
HAVE_NETINET_IP_H
HAVE_NETINET_TCP_H
HAVE_NET_IF_H
HAVE_NSS_H
HAVE_POLL_H
HAVE_READLINE_HISTORY_H
HAVE_READLINE_READLINE_H
HAVE_RPCSVC_NIS_H
HAVE_RPCSVC_YPCLNT_H
HAVE_RPCSVC_YP_PROT_H
HAVE_RPC_RPC_H
HAVE_SHADOW_H
HAVE_STDARG_H
HAVE_STDINT_H
HAVE_STDLIB_H
HAVE_STRINGS_H
HAVE_STRING_H
HAVE_STROPTS_H
HAVE_SYSCALL_H
HAVE_SYSLOG_H
HAVE_TERMIOS_H
HAVE_TERMIO_H
HAVE_UNISTD_H
HAVE_UTIME_H
UTMP Options:
HAVE_GETUTMPX
HAVE_UTMPX_H
HAVE_UTMP_H
HAVE_UT_UT_ADDR
HAVE_UT_UT_EXIT
HAVE_UT_UT_HOST
HAVE_UT_UT_ID
HAVE_UT_UT_NAME
HAVE_UT_UT_PID
HAVE_UT_UT_TIME
HAVE_UT_UT_TV
HAVE_UT_UT_TYPE
HAVE_UT_UT_USER
PUTUTLINE_RETURNS_UTMP
WITH_UTMP
HAVE_* Defines:
HAVE_ADDRTYPE_IN_KRB5_ADDRESS
HAVE_AP_OPTS_USE_SUBKEY
HAVE_ASPRINTF
HAVE_ASPRINTF_DECL
HAVE_ATEXIT
HAVE_BACKTRACE_SYMBOLS
HAVE_BER_SCANF
HAVE_C99_VSNPRINTF
HAVE_CHMOD
HAVE_CHOWN
HAVE_CHROOT
HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS
HAVE_CONNECT
HAVE_CREAT64
HAVE_CRYPT
HAVE_CUPS
HAVE_DEVICE_MAJOR_FN
HAVE_DEVICE_MINOR_FN
HAVE_DIRENT_D_OFF
HAVE_DLCLOSE
HAVE_DLERROR
HAVE_DLOPEN
HAVE_DLSYM
HAVE_DUP2
HAVE_ENDMNTENT
HAVE_ENDNETGRENT
HAVE_ERRNO_DECL
HAVE_EXECL
HAVE_EXPLICIT_LARGEFILE_SUPPORT
HAVE_FCHMOD
HAVE_FCHOWN
HAVE_FCNTL_LOCK
HAVE_FCVT
HAVE_FGETXATTR
HAVE_FLISTXATTR
HAVE_FOPEN64
HAVE_FREMOVEXATTR
HAVE_FSEEKO64
HAVE_FSETXATTR
HAVE_FSTAT
HAVE_FSTAT64
HAVE_FSYNC
HAVE_FTELLO64
HAVE_FTRUNCATE
HAVE_FTRUNCATE64
HAVE_FTRUNCATE_EXTEND
HAVE_FUNCTION_MACRO
HAVE_GETCWD
HAVE_GETDIRENTRIES
HAVE_GETGRENT
HAVE_GETGRNAM
HAVE_GETMNTENT
HAVE_GETNETGRENT
HAVE_GETRLIMIT
HAVE_GETSPNAM
HAVE_GETTIMEOFDAY_TZ
HAVE_GETXATTR
HAVE_GLOB
HAVE_GRANTPT
HAVE_GSSAPI
HAVE_GSS_DISPLAY_STATUS
HAVE_ICONV
HAVE_IFACE_IFCONF
HAVE_IMMEDIATE_STRUCTURES
HAVE_INITGROUPS
HAVE_INNETGR
HAVE_KERNEL_CHANGE_NOTIFY
HAVE_KERNEL_OPLOCKS_LINUX
HAVE_KERNEL_SHARE_MODES
HAVE_KRB5
HAVE_KRB5_AUTH_CON_SETUSERUSERKEY
HAVE_KRB5_C_ENCTYPE_COMPARE
HAVE_KRB5_ENCRYPT_BLOCK
HAVE_KRB5_ENCRYPT_DATA
HAVE_KRB5_FREE_DATA_CONTENTS
HAVE_KRB5_FREE_KEYTAB_ENTRY_CONTENTS
HAVE_KRB5_FREE_KTYPES
HAVE_KRB5_FREE_UNPARSED_NAME
HAVE_KRB5_GET_PERMITTED_ENCTYPES
HAVE_KRB5_KEYBLOCK_IN_CREDS
HAVE_KRB5_KEYTAB_ENTRY_KEY
HAVE_KRB5_KT_FREE_ENTRY
HAVE_KRB5_LOCATE_KDC
HAVE_KRB5_MK_REQ_EXTENDED
HAVE_KRB5_PRINCIPAL2SALT
HAVE_KRB5_PRINC_COMPONENT
HAVE_KRB5_SET_DEFAULT_TGS_KTYPES
HAVE_KRB5_SET_REAL_TIME
HAVE_KRB5_STRING_TO_KEY
HAVE_KRB5_TKT_ENC_PART2
HAVE_KRB5_USE_ENCTYPE
HAVE_KV5M_KEYTAB
HAVE_LDAP
HAVE_LDAP_DOMAIN2HOSTLIST
HAVE_LDAP_INIT
HAVE_LDAP_INITIALIZE
HAVE_LDAP_SET_REBIND_PROC
HAVE_LGETXATTR
HAVE_LIBGSSAPI_KRB5
HAVE_LIBK5CRYPTO
HAVE_LIBKRB5
HAVE_LIBLBER
HAVE_LIBLDAP
HAVE_LIBREADLINE
HAVE_LIBRESOLV
HAVE_LINK
HAVE_LINUX_XFS_QUOTAS
HAVE_LISTXATTR
HAVE_LLISTXATTR
HAVE_LLSEEK
HAVE_LONGLONG
HAVE_LREMOVEXATTR
HAVE_LSEEK64
HAVE_LSETXATTR
HAVE_LSTAT64
HAVE_MAKEDEV
HAVE_MEMMOVE
HAVE_MEMSET
HAVE_MKNOD
HAVE_MKTIME
HAVE_MMAP
HAVE_NANOSLEEP
HAVE_NATIVE_ICONV
HAVE_NEW_LIBREADLINE
HAVE_NL_LANGINFO
HAVE_OPEN64
HAVE_PATHCONF
HAVE_PIPE
HAVE_POLL
HAVE_POSIX_ACLS
HAVE_PREAD
HAVE_PREAD64
HAVE_PUTUTLINE
HAVE_PUTUTXLINE
HAVE_PWRITE
HAVE_PWRITE64
HAVE_QUOTACTL_LINUX
HAVE_RAND
HAVE_RANDOM
HAVE_READDIR64
HAVE_READLINK
HAVE_REALPATH
HAVE_REMOVEXATTR
HAVE_RENAME
HAVE_ROOT
HAVE_SECURE_MKSTEMP
HAVE_SELECT
HAVE_SENDFILE64
HAVE_SETBUFFER
HAVE_SETENV
HAVE_SETGROUPS
HAVE_SETLINEBUF
HAVE_SETLOCALE
HAVE_SETMNTENT
HAVE_SETNETGRENT
HAVE_SETPGID
HAVE_SETRESGID
HAVE_SETRESUID
HAVE_SETSID
HAVE_SETXATTR
HAVE_SHMGET
HAVE_SIGACTION
HAVE_SIGBLOCK
HAVE_SIGPROCMASK
HAVE_SIGSET
HAVE_SIG_ATOMIC_T_TYPE
HAVE_SNPRINTF
HAVE_SNPRINTF_DECL
HAVE_SOCKLEN_T_TYPE
HAVE_SRAND
HAVE_SRANDOM
HAVE_STAT64
HAVE_STAT_ST_BLKSIZE
HAVE_STAT_ST_BLOCKS
HAVE_STRCASECMP
HAVE_STRCHR
HAVE_STRDUP
HAVE_STRERROR
HAVE_STRFTIME
HAVE_STRNDUP
HAVE_STRNLEN
HAVE_STRPBRK
HAVE_STRTOUL
HAVE_STRUCT_DIRENT64
HAVE_STRUCT_FLOCK64
HAVE_STRUCT_STAT_ST_RDEV
HAVE_ST_RDEV
HAVE_SYMLINK
HAVE_SYSCALL
HAVE_SYSCONF
HAVE_SYSLOG
HAVE_SYS_QUOTAS
HAVE_TIMEGM
HAVE_UNIXSOCKET
HAVE_UPDWTMP
HAVE_UPDWTMPX
HAVE_USLEEP
HAVE_UTIMBUF
HAVE_UTIME
HAVE_UTIMES
HAVE_VASPRINTF
HAVE_VASPRINTF_DECL
HAVE_VA_COPY
HAVE_VOLATILE
HAVE_VSNPRINTF
HAVE_VSNPRINTF_DECL
HAVE_VSYSLOG
HAVE_WAITPID
HAVE_WRFILE_KEYTAB
HAVE_XFS_QUOTAS
HAVE_YP_GET_DEFAULT_DOMAIN
HAVE___CLOSE
HAVE___DUP2
HAVE___FCNTL
HAVE___FORK
HAVE___FSTAT
HAVE___FXSTAT
HAVE___LSEEK
HAVE___LSTAT
HAVE___LXSTAT
HAVE___OPEN
HAVE___OPEN64
HAVE___PREAD64
HAVE___PWRITE64
HAVE___READ
HAVE___STAT
HAVE___WRITE
HAVE___XSTAT
--with Options:
WITH_ADS
WITH_AUTOMOUNT
WITH_QUOTAS
WITH_SENDFILE
WITH_SMBMOUNT
WITH_SYSLOG
WITH_UTMP
WITH_WINBIND
Build Options:
COMPILER_SUPPORTS_LL
DEFAULT_DISPLAY_CHARSET
DEFAULT_DOS_CHARSET
DEFAULT_UNIX_CHARSET
LDAP_SET_REBIND_PROC_ARGS
LINUX
LINUX_SENDFILE_API
PACKAGE_BUGREPORT
PACKAGE_NAME
PACKAGE_STRING
PACKAGE_TARNAME
PACKAGE_VERSION
REALPATH_TAKES_NULL
REPLACE_GETPASS
RETSIGTYPE
SEEKDIR_RETURNS_VOID
SIZEOF_INO_T
SIZEOF_INT
SIZEOF_LONG
SIZEOF_OFF_T
SIZEOF_SHORT
STAT_STATVFS64
STAT_ST_BLOCKSIZE
STDC_HEADERS
STRING_STATIC_MODULES
SYSCONF_SC_NGROUPS_MAX
TIME_WITH_SYS_TIME
USE_SETRESUID
WITH_ADS
WITH_AUTOMOUNT
WITH_QUOTAS
WITH_SENDFILE
WITH_SMBMOUNT
WITH_SYSLOG
WITH_WINBIND
_FILE_OFFSET_BITS
_GNU_SOURCE
_LARGEFILE64_SOURCE
_POSIX_C_SOURCE
_POSIX_SOURCE
charset_CP437_init
charset_CP850_init
offset_t
static_init_auth
static_init_charset
static_init_idmap
static_init_pdb
static_init_rpc
static_init_vfs
vfs_audit_init
vfs_cap_init
vfs_default_quota_init
vfs_expand_msdfs_init
vfs_extd_audit_init
vfs_fake_perms_init
vfs_full_audit_init
vfs_netatalk_init
vfs_readonly_init
vfs_recycle_init
vfs_shadow_copy_init
Type sizes:
sizeof(char): 1
sizeof(int): 4
sizeof(long): 4
sizeof(uint8): 1
sizeof(uint16): 2
sizeof(uint32): 4
sizeof(short): 2
sizeof(void*): 4
Builtin modules:
pdb_ldap pdb_smbpasswd pdb_tdbsam pdb_guest rpc_lsa rpc_reg rpc_lsa_ds rpc_wks rpc_net rpc_dfs rpc_srv rpc_spoolss rpc_samr idmap_ldap idmap_tdb auth_rhosts auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin
-------------- next part --------------
[global]
realm = 000.LOVELIFE.ORG.ZA
netbios name = BOX
workgroup = LOVELIFE
security = ADS
encrypt passwords = yes
idmap uid = 15000-20000
idmap gid = 15000-20000
winbind nested groups= yes
winbind use default domain = yes
winbind separator = /
winbind enum users = yes
winbind enum groups = yes
# host msdfs = yes
nt acl support = yes
# username map = /etc/samba/smbusers
map acl inherit = yes
hosts allow = 10.0. 127.
log file = /var/log/samba.%m
max log size = 50
log level = 10
[public]
comment = Public Share
path = /usr/local/data
read only = no
#[dfs]
# comment = Dfs share
# path = /usr/local/dfs
# msdfs root = yes
More information about the samba
mailing list