Christmas miscellany 2011

It is my heart-warmed and world-embracing Christmas hope and aspiration that all of us, the high, the low, the rich, the poor, the admired, the despised, the loved, the hated, the civilized, the savage (every man and brother of us all throughout the whole earth), may eventually be gathered together in a heaven of everlasting rest and peace and bliss, except the inventor of the telephone.
~Mark Twain, Christmas greeting, 1890

Wrong user connecting to samba share

Our home network includes 2 servers in the basement. Both run Ubuntu 10.04 (Lucid) server. The older is primarily used as a web server. The newer is used mainly for NAS. When I’m completely happy with the new server I’ll add a web server, transfer our websites, then retire the old server. Both run Samba 3.4.7

The Samba server on the new server worked fine but I was using quick and dirty shares like this:

[storage]
force user = root
writeable = yes
path = /storage
write list = steven

Using ‘force user = root’ is pretty sloppy but it works if I am the only user and I can’t be bothered sorting out linux permissions on the server. After a few days I needed to fix up the samba permissions so our other windows PCs could access the samba shares for file sharing and backing up. So I needed to:

  • make sure the unix users have the correct directory and file permissions
  • the corresponding samba users exist and have the same passwords
  • the Windows hosts and users are set up correctly
  • that is, Linux user <=> Samba user <=> Windows user

All went ok except for one thing: one of the other PCs always (or mostly) connected to the samba server as me. This was a problem because I wanted write access for myself for all the samba shares but I wanted the other PC to have read only access to some of the shares (videos, music etc) but write access to others (eg backup). The samba log reported that the correct host was connecting but the incorrect user. If I deleted my Samba user then the PC would connect to the correct Samba user. Then when I recreated my samba user the PC would again connect as me, which is the incorrect user for that PC.

I tried many fixes, such as

  • created new windows users on various windows PCs – all were able to access the samba shares
  • reinstalled Samba and changed the password backend from smbpasswd to tdbsam
  • at the same time I was sometimes having trouble browsing the shares from all Windows boxes so I disabled the WINS server and instead configured all network IPs manually using hosts/lmhosts files.

At last today I figured it out. Of course the problem was with Windows rather than with Samba or Linux. At some stage I must have logged in to my samba user from the other PC and windows remembered that username and password. Despite numerous restarts and logouts and occassionally connecting to the correct samba user (when mine was not available) windows remembered my username and used it when possible. The solution was “to delete stored user names and passwords“.