Most of what you’ll find about connecting OS/2 to Samba is either from the Samba 2.x days, so its settings don’t match a modern smb.conf, or it’s about ArcaOS, whose newer Samba-based client sidesteps the problem entirely. I wanted the original IBM clients, OS/2 Warp 3 Connect and Warp Server for e-Business (WSeB), to map drives from a current Samba (4.23 on FreeBSD). It works. You need a handful of smb.conf settings and one rule about passwords that almost nobody mentions.
The short version
- Re-enable SMB1 and the old authentication methods in smb.conf (below).
- Use a password of 14 characters or fewer for the account the OS/2 machines log on with, and set it after enabling
lanman auth. - On the OS/2 side,
LOGONfirst, thenNET USE.
The Samba side
These are the relevant lines from my [global] section:
[global]
server min protocol = LANMAN1
lanman auth = yes
ntlm auth = yes
server smb encrypt = disabled
lm announce = yes
server min protocol: Samba’s default isSMB2_02, and these clients only speak SMB1. Both Warp 3 Connect and WSeB actually negotiatedNT1(Samba’ssmbstatusshows the protocol each session uses), soNT1would probably do for them. I useLANMAN1to cover anything older.lanman auth: lets Samba check the old LAN Manager password hash. The smb.conf man page says it’s deprecated since Samba 4.11 and will be removed in a future release, but in 4.23 it still works.ntlm auth = yes:yesis an alias forntlmv1-permitted. The man page says this is “the required setting to enable the lanman auth parameter”, solanman auth = yesalone isn’t enough.server smb encrypt: don’t set it torequired, or clients that can’t encrypt get “access denied”. I have itdisabled. ArcaOS’s client also needed that on my network.lm announce: per the man page, these are the “Lanman announce broadcasts that are needed by OS/2 clients in order for them to see the Samba server in their browse list”. It only affects browsing (NET VIEWwith no server name), not connecting.
I didn’t test removing these one at a time, so a couple may be stricter than necessary. Together, they work. You don’t need a username map for case: OS/2 sends the username in uppercase, and Samba matched it to the lowercase account without one.
The password: 14 characters or fewer
This is the part that cost me days. With my normal password, every attempt from OS/2 failed with NET2758, and Samba logged a wrong password even though I was typing the right one. With a short password, the same machines connected immediately.
The old LAN Manager password hash is limited to 14 characters (and is case-insensitive), so a longer password doesn’t survive the trip through it intact. I didn’t pin down exactly where mine got mangled, on the OS/2 side or in Samba, but the result is a password that never matches. Modern clients use NTLMv2 instead, which has no such limit, so a long password works fine from Windows and only fails from the old machines. Keep the password that the OS/2 machines use to 14 characters or fewer. Mine works at that length.
One more trap, also from the man page: while lanman auth = no, Samba blanks the stored LAN Manager hash at the next password change, and lanman clients “won’t be able to authenticate, even if lanman auth is re-enabled later on”. So turn lanman auth on first, then set the password (smbpasswd youruser).
Because this password goes over the wire protected only by that weak old hash, treat it as a LAN-only password. I accepted that for my home network.
The OS/2 side
You need the IBM LAN client and NetBIOS over TCP/IP (also called TCPBEUI), configured in MPTS’s LAN adapter and protocol settings.
- Warp 3 Connect: the install offers IBM Peer or IBM LAN Requester. Pick IBM Peer. LAN Requester is meant for logging in to an IBM LAN Server domain, while Peer is the workgroup client that fits a standalone Samba server. If the Peer install fails with “Unknown error (205) generated response files”, copy the install files from the CD to the hard disk and run the install from there. That fixed it for me.
- WSeB: the requester comes with the server. In my
PROTOCOL.INI, NetBIOS over TCP/IP runs as aB-Nodewith no names file, so it finds the server by broadcast. - Name resolution: if broadcasts don’t find your server (for example, it’s on another subnet), the NetBIOS over TCP/IP settings page has a table of NetBIOS names and IP addresses, which it saves to
RFCNAMES.LST. Put your Samba server’s name and IP there. Note that OS/2 doesn’t read a Windows-styleLMHOSTSfile.
Then log on and map the drive. The same commands work on Warp 3 Connect and WSeB:
LOGON YOURUSER /P:yourpassword /V:NONE
NET USE X: \\SERVER\SHARE
The NET USE on my machines has no /USER option, so the logon is what supplies the credentials. To check the logon by itself before you involve a share, run NET VIEW \\SERVER. If it lists the server’s shares, authentication works.
What the errors mean
NET2758: the logon was refused. Check the password length first, then the smb.conf settings above.NET3502withSYS0053(“The network path was not found”): OS/2 couldn’t find the server by name. That’s a name resolution problem, not authentication.