关于centos ubuntu不同版本,参考:如何在CentOS 7上安装和配置Samba

关于centos共享samba无法写入的问题,与selinux有关,参考:RHEL5下的Samba共享目录无法写入的解决方案

---------------------------------------------------------------------分割线-------------------------------------------------------------------------------------

关于unbutu用户账号和samba账号概念

  • 拥有ubuntu用户账号,可以通过ssh命令号或者xshell软件登录远端服务器;
  • samba账号给用户提供了共享文件夹访问的方式,用户可以通过samba查看、修改指定目录中的内容;

samba账号创建的前提是存在相同的ubuntu用户账号,同样的,在清除用户账号前需要先清除samba账号,否则先清除ubuntu用户账号再清除samba账号时,samba账号会清除失败

增加普通用户adduser

关于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

增加samba访问

用户添加到sambashare

上面添加的账号密码可以通过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

创建桑巴用户后,您需要通过编辑桑巴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账户和系统账户

删除前,请先确认该用户下的目录与要删除的目录是否一致

和上面我顺序相反,我们先删除samba账户

sudo smbpasswd -x 老账户

然后删除系统账户,-r会同时删除账户目录

sudo userdel -r 老账户

如果你在samba配置文件中单独配置了用户访问权限,删除

sudo  vim /etc/samba/smb.conf

报错信息

samba报错

报错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

SSH报错

报错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博客

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐