需求:
- 全员共享空间,每个人均可编辑,用于内部交换文件,访问需要输入用户名和密码
- 全员只读空间,每个人都可以读,但不能写,不需要设置访问限制
配置:
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
在弹出的界面上按照截图进行配置后,用户不需要验证,具有读写权限
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管理员组,并将管理员添加到组
sudo gpasswd -a zhangsan sambaadm
6) 设置smb.conf valid users和以下配置项,即可实现需要的功能
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,输入用户名和密码后,会出现下面的截图:
原因是用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