我使用的是 Solaris 11.4
我创建了一个 zfs fs
zfs create rpool/share
我设置为通过 smb 共享
zfs set share=name=zfssmb1,path=/rpool/share,prot=smb,csc=auto,guestok=false rpool/share
当我尝试从任何客户端通过 smbclient 访问时..
smbclient \\\\solaris11.mydomain.local\zfssmb1 -U myuser%mypass -w mydomain
给我访问被拒绝。并在 /var/adm/messages 上说..
SOLARIS11\guest]: (10.3.0.225) zfssmb1 access denied: guest disabled
如果我启用访客访问,我可以通过 smbclient 访问而不会出现问题
zfs set share=name=zfssmb1,path=/rpool/share,prot=smb,csc=auto,guestok=true rpool/share
我尝试设置 idmap 但没有任何变化
idmap add winuser:*@mydomain.local unixuser:*
idmap add "wingroup:Domain [email protected]" unixgroup:users
idmap add "wingroup:Domain [email protected]" unixgroup:staff
EDIT1:一点进步
通过 smbadm 启用我的用户后
smbadm enable user myuser
并编辑/etc/pam.d/other
password required pam_smb_passwd.so.1 nowarn
我可以从 Solaris 客户端成功挂载共享
mount -o user=myuser -F smbfs //solaris11/zfssmb1 /mnt
但 Linux 客户端和 Linux 和 Solaris 上的 smbclient 返回登录失败
mount.cifs \\\\solaris11.mydomain.local\\zfssmb1 -o user=myuser,password=*******
smbclient \\\\solaris11.mydomain.local\\zfssmb1 -U myuser%mypass
答案1
找到解决方案了,完整的解决方案在这里
a)创建一个zfs fs
zfs create rpool/share
b)设置为通过smb共享
zfs set share=name=zfssmb1,path=/rpool/share,prot=smb,csc=auto,guestok=false rpool/share
c) 通过 smbadm 设置用户
smbadm enable user myuser
d) 添加密钥
smbadm add-key -u myuser
e) 编辑 /etc/pam.d/other 并将此行放在文件末尾
password required pam_smb_passwd.so.1 nowarn
f)现在最重要的是,更改密码,此命令同时启用unix和samba pass
passwd myuser
g) 现在尝试一下是否有效,来自 Solaris 客户端的命令必须运行良好
smbclient \\\\solaris11.mydomain.local\\zfssmb1 -U myuser%mypass
h) 以及来自 Linux 客户端的那些
mount.cifs \\\\solaris11.mydomain.local\\zfssmb1 -o user=myuser,password=yourpass,vers=1.0 /mnt
smbclient \\\\solaris11.mydomain.local\\zfssmb1 -U myuser%mypass