关于centos ubuntu不同版本,参考:如何在CentOS 7上安装和配置Samba
关于centos共享samba无法写入的问题,与selinux有关,参考:RHEL5下的Samba共享目录无法写入的解决方案
---------------------------------------------------------------------分割线-------------------------------------------------------------------------------------
samba账号创建的前提是存在相同的ubuntu用户账号,同样的,在清除用户账号前需要先清除samba账号,否则先清除ubuntu用户账号再清除samba账号时,samba账号会清除失败
关于adduser与useradd的区别,请看linux学习之adduser、usermod
查询服务器存在哪些组:Linux查看用户属于哪些组或组下有哪些用户_Rocket MAN的博客-CSDN博客
sudo adduser --home 家目录 --ingroup 已存在的组 新用户
我们可以看到用户已经添加成功,一般而言,添加成功后虽然可以在shell中登录,但是还不能通过共享方式访问
cat /etc/passwd | grep userName
userName:uid:gid:,,,:/userHomeDirectory :/bin/bash
上面添加的账号密码可以通过shh访问,但是无法通过共享访问。
如果要让账户可以通过samba访问,那么需要把用户添加到samba(注意这里的先后顺序,是先adduser添加用户,然后才可以添加到samba用户,否则添加不成功)
需要把用户添加到samba,并配置密码
sudo smbpasswd -a 新用户
这里很有意思的一点是,如果该密码和添加用户时的密码不一致,通过win共享方式访问,输入的密码只有是用户密码才有效。也就是说这里的密码和共享登录的密码没关系,但是如果不设置就拒绝访问,这有点奇怪。
重启samba查看是否添加成功
sudo /etc/init.d/smbd restart
sudo pdbedit -L | grep 新用户
如果sudo pdbedit -L没有该用户,就无法访问。
创建桑巴用户后,您需要通过编辑桑巴smb.conf文件将其添加到桑巴共享中,该文件是桑巴的配置文件,管理用户的各项权限。
sudo vim /etc/samba/smb.conf
如果samba中统一配置了[home],那么就不需要单独配置用户samba了。
#======================= Share Definitions =======================
# Un-comment the following (and tweak the other settings below to suit)
# to enable the default home directory shares. This will share each
# user's home directory as \\server\username
[homes]
comment = Home Directories
read only = no
create mask = 0755
directory mask = 0755
valid users = %S
否则,你需要单独配置一个
...
[userName]
path = /userHomeDirectory
available = yes
browseable = yes
public = yes
writable = yes
valid users = userName
create mask = 0661
directory mask = 0775
删除前,请先确认该用户下的目录与要删除的目录是否一致
和上面我顺序相反,我们先删除samba账户
sudo smbpasswd -x 老账户
然后删除系统账户,-r会同时删除账户目录
sudo userdel -r 老账户
如果你在samba配置文件中单独配置了用户访问权限,删除
sudo vim /etc/samba/smb.conf
报错1:无法访问\\:192...
解决方法:查看samba配置的路径path是否正确 或者 是否存在
报错2:访问samba目录发现无读写权限
解决方法:先看看samba中该用户的writable = yes是否正确,再看该用户的家目录所属主和所属组是否是当前用户所属主和所属组
报错3:账号或密码不正确
如果可以确定samba账号正确,samba密码正确,可以试试Linux - Windows 10 密码错误与桑巴共享 - 超级用户 (superuser.com)中Niels的方法
sudo vim /etc/samba/smb.conf
在global下添加
ntlm auth = true
报错1:ssh登录软件(Xshell/SecureCRT)访问报错
查看当前用户的bash文件是否指向错误,修改成与其他用户的bash一致即可
cat /etc/passwd | grep 用户名
报错1:Failed to find a Unix account for XXX
我想删除一个samba账号,一直报错。这个问题困扰了我很久,原因是我在删除samba账号前删除了系统账号,顺序错了
详见:Samba fails to add a user entry, how do I fix this? - Ask Ubuntu
sudo smbpasswd -x 某用户
Failed to find a Unix account for 某用户
Failed to delete entry for user 某用户
来源:
如何在 Linux 中添加桑巴用户 (linoxide.com)
linux及samba用户的查看与删除_mlove编程-CSDN博客_查看samba用户
Linux useradd 与 adduser的区别, /sbin/nologin 与 /bin/bash_yanzi5230的博客-CSDN博客