Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have set up samba like this (this is the complete smb.conf):

[global]
log file = /var/log/samba/log
log level = 2
security = user

[homes]
browsable = false
read only = no
valid users = %S

I'd like to enable every user on server to access their home directories, but for some unknown reason only my 'administrator' account can do so. (I have done that with ftp before, but now smb is also needed).

When I try to smbclient -L localhost -U [user], I get NT_STATUS_LOGON_FAILURE, except with the administrator (which is the user created during the ubuntu installation, not root).

The samba log file says NT_STATUS_NO_SUCH_USER:

[2012/04/04 20:26:02.081454,  2] smbd/reply.c:554(reply_special)
  netbios connect: name1=LOCALHOST      0x20 name2=DIALER-X       0x0
[2012/04/04 20:26:02.081733,  2] smbd/reply.c:565(reply_special)
  netbios connect: local=localhost remote=dialer-x, name type = 0
[2012/04/04 20:26:02.087200,  2] auth/auth.c:314(check_ntlm_password)
  check_ntlm_password:  Authentication for user [public] -> [public] FAILED with error NT_STATUS_NO_SUCH_USER

I suspect that I have to manually create samba users, but the man pages state that If the client has passed a username/password pair and that username/password pair is validated by the UNIX system's password programs, the connection is made as that username. To me that sounds like as long as the provided username/password is a valid login on the server, it should work.

Am I missing something totally obvious? I don't want / can't afford to manually update the samba users and passwords to match the server's.


11.10

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

You will need to manually add your users and passwords to the samba user database using the smbpasswd command.

It's not possible to use the local user accounts since Samba and the standard password mechanism on Ubuntu both only store the hash of passwords, and not the passwords themselves. The hashes they use are incompatible, so it's not possible to import password hashes from one database into the other.

There are a couple of things you can do to automatically update passwords in both databases at the same time when a user changes their password, such as using pam_smbpass.

share|improve this answer
    
Thanks for the answer; guess I'll have to figure out how that pam_smbpass thing works. You don't happen to know how vsfptd does this? Does it use plain text authentication? –  dialer Apr 5 '12 at 13:58
    
for FTP you would just be sent the password itself; that's easy to check that against any hash. The thing with the SMB protocol is that it never sends the actual password over the wire. –  jelmer Apr 5 '12 at 22:11
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.