需求:

  1. 全员共享空间,每个人均可编辑,用于内部交换文件,访问需要输入用户名和密码
  2. 全员只读空间,每个人都可以读,但不能写,不需要设置访问限制

 

配置:

1.安装samba:

(1)更新当前软件。
sudo apt-get upgrade
sudo apt-get update
sudo apt-get dist-upgrade

(2)安装samba服务器。
sudo apt-get install samba samba-common

2.修改配置文件:

图形界面可以实现简单配置:

sudo system-config-samba

在弹出的界面上按照截图进行配置后,用户不需要验证,具有读写权限

用户登陆Samba服务器指定的网络密码不正确 samba用户权限配置_ubuntu18.04

用户登陆Samba服务器指定的网络密码不正确 samba用户权限配置_ubuntu18.04_02

用户登陆Samba服务器指定的网络密码不正确 samba用户权限配置_服务器_03

 

3. 添加用户并通过命令行修改smb.conf,用来实现访问可写目录需要验证功能

1) 创建linux用户

Sudo useradd -r -m -s /bin/bash test1

2) 给linux用户开samba权限

Sudo smbpasswd -a test1

3) 添加用户到共享samba用户组

Sudo usermod -G sambashare test1

4) 修改linux上的共享目录的用户组为sambashare

Sudo chgrp sambashare /share

5) 添加sambaadm管理员组,并将管理员添加到组

用户登陆Samba服务器指定的网络密码不正确 samba用户权限配置_bash_04

sudo gpasswd -a zhangsan sambaadm

 

6) 设置smb.conf valid users和以下配置项,即可实现需要的功能

用户登陆Samba服务器指定的网络密码不正确 samba用户权限配置_服务器_05

 

 

 

 

 

7) 设置smb.conf后,需要重启smbd服务:

Sudo /etc/init.d/smbd restart

8) 接下来就可以在windows上访问samba服务器了,通过如下的方式访问

\\ip

在linux中可以通过ifconfig 查看地址

4. 常用linux命令

1) Sudo cat /etc/group

查看用户组

 

2) Chown [-R] 账号名称:组群 文件/目录

   修改组群的命令 -R表示嵌套的

 

3)   /etc/init.d/smbd status

或
Service smbd status
查询samba服务器的状态
 
4)   Testparm
查看smb.conf 是否配置正确
 
5)  删除文件命令
1. 创建文件: touch a.txt
2. 创建文件夹: mkdir NewFolder
3. 删除文件: rm a.txt
4. 删除文件夹: rmdir NewFolder
5. 删除带有文件的文件夹: rm -r NewFolder

6)  Samba配置项:

inherit permission
继承父文件的用户及组权限,会覆盖create mask/directory mask/force create mask/force directory mask
 
7)  Smbpasswd命令详解
smbpasswd只有一个参数
-a 新建用户
使用的时候创建的samba用户必须在系统用户中存在。否则samba找不到系统用户则创建失败
 -d 冻结用户,就是这个用户不能在登录了
 -e 恢复用户,解冻用户,让冻结的用户可以在使用-n 把用户的密码设置成空.
-x 删除用户,删除的是samba中的用户,而不是系统用户
 
8)  Samba服务器用户查看及删除命令
用tdbsam方式建立samba用户数据库,可以不用smbpasswd,用pdbedit命令来完成操作,它的参数很多这里列出几个常用的:
 pdbedit -a username 添加一个用户
 pdbedit -L username 查看samba用户
 pdbedit -X username 删除一个用户

 

9)  常见错误解决方法

Win10客户端连接samba服务器,\\ip\share_all,输入用户名和密码后,会出现下面的截图:

用户登陆Samba服务器指定的网络密码不正确 samba用户权限配置_ubuntu18.04_06

 

原因是用nobody用户不经过验证登陆过samba服务器,用sudo smbstatus查询到本机ip登陆的进程,kill pid,之后再登陆验证目录文件夹就可以了。

 

还是不行,那就重启smbd服务就可以正常使用了。

Sudo /etc/init.d/smbd restart

 

 

 

参考链接:

https://www.linuxidc.com/Linux/2016-12/138498.htm

https://jingyan.baidu.com/article/3a2f7c2ed314ef26afd611a1.html

https://wenku.baidu.com/view/aaa6ce717fd5360cba1adb0d.html

https://www.freebsd.org/cgi/man.cgi?query=smb.conf