[Samba] ACLs passwd file and winbind.

Bob Cregan bob.cregan at bristol.ac.uk
Thu Apr 14 08:35:36 MDT 2011


Hi
     Is there a way of getting samba to use the passwd file entries when 
utilising POSIX extended acls.

I have two groups of users

1) A vast amount of users who access filestore via windows only. In this 
case I winbind and idmap to assign random UNIX uids as is normal.
2) I also have a much smaller group of users who use NFS and CIFS to 
access the same area. In this case I put an entry in the password file 
on the samba server to set the uid to a particular value so that samba 
may write files with that uid. This means that a NFS client may also 
access those files provided it has an appropriate user setup.

All this works very well. However I was going to use POSIX extended ACLs 
to facilitate sharing but the samba side seems not to work the way I had 
hoped. For example an linux user, user-A (uid 1234) may set an acl on a 
directory for user-B (uid 12345) so that he may access it, and this 
works with NFS (version3) . It seems however that samba does not use the 
entries in the passwd file to map uids when it comes to extended acls 
and always maps it to a random uid via winbind.

The symptom of this is that a user via samba writes files with uid 1234 
but cannot access a file produced from an NFS client with an acl giving 
read/write permission to uid 1234. It also works this way when setting 
acls via samba - acls are always assigned using the random uid  not the 
uid as defined in the password file which means that users on NFS 
clients cannot read files they should.

My setup is clustered samba 3.5.8 using ctdb and GPFS 3.3 as the 
parallel filesystem. testparm -v is below. nsswitch.conf does not point 
to winbind.

Does anyone have any pointers. Am I missing something simple?

Thanks

Bob

[global]
     dos charset = CP850
     unix charset = UTF-8
     display charset = LOCALE
     workgroup =********************
     realm =**************************
     netbios name = ************************
     netbios aliases =
     netbios scope =
     server string = Samba 3.5.8
     interfaces =
     bind interfaces only = No
     security = ADS
     auth methods =
     encrypt passwords = Yes
     update encrypted = No
     client schannel = Auto
     server schannel = Auto
     allow trusted domains = Yes
     map to guest = Bad User
     null passwords = No
     obey pam restrictions = No
     password server = *********************
     smb passwd file = /usr/local/samba-3.5.8/private/smbpasswd
     private dir = /RDSF_REPL/gpfs_admin/cifs_state/
     passdb backend = tdbsam
     algorithmic rid base = 1000
     root directory =
     guest account = nobody
     enable privileges = Yes
     pam password change = No
     passwd program =
     passwd chat = *new*password* %n\n *new*password* %n\n *changed*
     passwd chat debug = No
     passwd chat timeout = 2
     check password script =
     username map =
     password level = 0
     username level = 0
     unix password sync = No
     restrict anonymous = 2
     lanman auth = No
     ntlm auth = Yes
     client NTLMv2 auth = Yes
     client lanman auth = No
     client plaintext auth = No
     preload modules =
     dedicated keytab file =
     kerberos method = default
     map untrusted to domain = No
     log level = 1 acls:10 idmap:10
     syslog = 1
     syslog only = Yes
     log file = /var/log/samba/log.%m
     max log size = 5000
     debug timestamp = Yes
     debug prefix timestamp = No
     debug hires timestamp = Yes
     debug pid = No
     debug uid = No
     debug class = No
     enable core files = Yes
     smb ports = 445 139
     large readwrite = Yes
     max protocol = NT1
     min protocol = CORE
     min receivefile size = 0
     read raw = Yes
     write raw = Yes
     disable netbios = No
     reset on zero vc = No
     acl compatibility = auto
     defer sharing violations = Yes
     nt pipe support = Yes
     nt status support = Yes
     announce version = 4.9
     announce as = NT
     max mux = 50
     max xmit = 16644
     name resolve order = lmhosts wins host bcast
     max ttl = 259200
     max wins ttl = 518400
     min wins ttl = 21600
     time server = No
     unix extensions = Yes
     use spnego = Yes
     client signing = auto
     server signing = No
     client use spnego = Yes
     client ldap sasl wrapping = plain
     enable asu support = No
     svcctl list =
     deadtime = 0
     getwd cache = Yes
     keepalive = 300
     lpq cache time = 30
     max smbd processes = 0
     paranoid server security = Yes
     max disk size = 0
     max open files = 16384
     socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
     use mmap = Yes
     hostname lookups = No
     name cache timeout = 660
     ctdbd socket =
     cluster addresses =
     clustering = Yes
     ctdb timeout = 0
     load printers = Yes
     printcap cache time = 750
     printcap name =
     cups server =
     cups encrypt = No
     cups connection timeout = 30
     iprint server =
     disable spoolss = No
     addport command =
     enumports command =
     addprinter command =
     deleteprinter command =
     show add printer wizard = Yes
     os2 driver map =
     mangling method = hash2
     mangle prefix = 1
     max stat cache size = 256
     stat cache = Yes
     machine password timeout = 604800
     add user script =
     rename user script =
     delete user script =
     add group script =
     delete group script =
     add user to group script =
     delete user from group script =
     set primary group script =
     add machine script =
     shutdown script =
     abort shutdown script =
     username map script =
     logon script =
     logon path = \\%N\%U\profile
     logon drive =
     logon home = \\%N\%U
     domain logons = No
     init logon delayed hosts =
     init logon delay = 100
     os level = 20
     lm announce = Auto
     lm interval = 60
     preferred master = No
     local master = Yes
     domain master = Auto
     browse list = Yes
     enhanced browsing = Yes
     dns proxy = Yes
     wins proxy = No
     wins server =
     wins support = No
     wins hook =
     kernel oplocks = Yes
     lock spin time = 200
     oplock break wait time = 0
     ldap admin dn =
     ldap delete dn = No
     ldap group suffix =
     ldap idmap suffix =
     ldap machine suffix =
     ldap passwd sync = no
     ldap replication sleep = 1000
     ldap suffix =
     ldap ssl = start tls
     ldap ssl ads = No
     ldap deref = auto
     ldap follow referral = Auto
     ldap timeout = 15
     ldap connection timeout = 2
     ldap page size = 1024
     ldap user suffix =
     ldap debug level = 0
     ldap debug threshold = 10
     eventlog list =
     add share command =
     change share command =
     delete share command =
     preload =
     lock directory = /usr/local/samba-3.5.8/var/locks
     state directory = /usr/local/samba-3.5.8/var/locks
     cache directory = /usr/local/samba-3.5.8/var/locks
     pid directory = /usr/local/samba-3.5.8/var/locks
     utmp directory =
     wtmp directory =
     utmp = No
     default service =
     message command =
     get quota command =
     set quota command =
     remote announce =
     remote browse sync =
     socket address = 0.0.0.0
     nmbd bind explicit broadcast = Yes
     homedir map =
     afs username map =
     afs token lifetime = 604800
     log nt token command =
     time offset = 0
     NIS homedir = No
     registry shares = No
     usershare allow guests = No
     usershare max shares = 0
     usershare owner only = Yes
     usershare path = /usr/local/samba-3.5.8/var/locks/usershares
     usershare prefix allow list =
     usershare prefix deny list =
     usershare template share =
     panic action =
     perfcount module =
     host msdfs = Yes
     passdb expand explicit = No
     idmap backend = tdb2
     idmap alloc backend =
     idmap cache time = 604800
     idmap negative cache time = 120
     idmap uid = 100000-200000
     idmap gid = 100000-200000
     template homedir = /home/%D/%U
     template shell = /bin/false
     winbind separator = \
     winbind cache time = 300
     winbind reconnect delay = 30
     winbind enum users = Yes
     winbind enum groups = Yes
     winbind use default domain = Yes
     winbind trusted domains only = No
     winbind nested groups = Yes
     winbind expand groups = 1
     winbind nss info = template
     winbind refresh tickets = Yes
     winbind offline logon = No
     winbind normalize names = No
     winbind rpc only = Yes
     create krb5 conf = Yes
     nfs4: acedup = merge
     nfs4: chown = yes
     nfs4: mode = special
     gpfs:winattr = No
     gpfs:sharemodes = No
     fileid:mapping = fsname
     comment =
     path =
     username =
     invalid users =
     valid users =
     admin users =
     read list =
     write list =
     printer admin =
     force user =
     force group =
     read only = Yes
     acl check permissions = Yes
     acl group control = No
     acl map full control = Yes
     create mask = 0744
     force create mode = 00
     security mask = 0777
     force security mode = 00
     directory mask = 0755
     force directory mode = 00
     directory security mask = 0777
     force directory security mode = 00
     force unknown acl user = Yes
     inherit permissions = No
     inherit acls = No
     inherit owner = No
     guest only = No
     administrative share = No
     guest ok = No
     only user = No
     hosts allow =
     hosts deny =
     allocation roundup size = 1048576
     aio read size = 0
     aio write size = 0
     aio write behind =
     ea support = No
     nt acl support = Yes
     profile acls = No
     map acl inherit = No
     afs share = No
     smb encrypt = auto
     block size = 1024
     change notify = Yes
     directory name cache size = 100
     kernel change notify = Yes
     max connections = 0
     min print space = 0
     strict allocate = No
     strict sync = No
     sync always = No
     use sendfile = No
     write cache size = 0
     max reported print jobs = 0
     max print jobs = 1000
     printable = No
     printing = bsd
     cups options =
     print command = lpr -r -P'%p' %s
     lpq command = lpq -P'%p'
     lprm command = lprm -P'%p' %j
     lppause command =
     lpresume command =
     queuepause command =
     queueresume command =
     printer name =
     use client driver = No
     default devmode = Yes
     force printername = No
     printjob username = %U
     default case = lower
     case sensitive = Auto
     preserve case = Yes
     short preserve case = Yes
     mangling char = ~
     hide dot files = Yes
     hide special files = No
     hide unreadable = No
     hide unwriteable files = No
     delete veto files = No
     veto files =
     hide files =
     veto oplock files =
     map archive = Yes
     map hidden = No
     map system = No
     map readonly = yes
     mangled names = Yes
     store dos attributes = No
     dmapi support = No
     browseable = Yes
     access based share enum = No
     blocking locks = Yes
     csc policy = manual
     fake oplocks = No
     locking = Yes
     oplocks = Yes
     level2 oplocks = Yes
     oplock contention limit = 2
     posix locking = Yes
     strict locking = Auto
     share modes = Yes
     dfree cache time = 0
     dfree command =
     copy =
     preexec =
     preexec close = No
     postexec =
     root preexec =
     root preexec close = No
     root postexec =
     available = Yes
     volume =
     fstype = NTFS
     set directory = No
     wide links = No
     follow symlinks = Yes
     dont descend =
     magic script =
     magic output =
     delete readonly = No
     dos filemode = No
     dos filetimes = Yes
     dos filetime resolution = No
     fake directory create times = No
     vfs objects = gpfs, fileid
     msdfs root = No
     msdfs proxy =

[ACRC]
     comment = ACRC Space for use and testing
     path = *************************
     valid users = ***************************
     read only = No
     inherit acls = Yes
     hosts allow = ****************
     nfs4: acedup = merge
     nfs4: chown = yes
     nfs4: mode = special
     gpfs:winattr = No

-- 
Bob Cregan
Senior Storage Systems Administrator
ACRC
Bristol University
Tel:     +44 (0) 117 331 4421
Mobile: +44 (0) 7712388129



More information about the samba mailing list