一. 安装Samba
1. 安装命令
sudo apt install samba
2 . 创建共享目录(工作目录)
# 切换到用户(家)目录
cd ~
# 创建目录
mkdir samba_share
# 修改文件夹权限, 仅个人用开发所有权限
# 如果是多级目录(如a/b/c)加 -R(递归), chmod -R
chmod 777 samba_share
3. 创建samba配置文件
# 先备份原始配置文件, 用于恢复
sudo cp /etc/samba/smb.conf /etc/samba/smb.bak
sudo vim /etc/samba/smb.conf
然后在smb.conf最后末尾添加几行:
[samba_share]
# path为共享文件夹的路径 fixme:必须要和实际创建的目录一致
path = /home/yyq/samba_share
available = yes
browseable = yes
# yyq为用户名
valid users = yyq
public = yes
writable = yes
要点:创建的共享目录必须要和上面创建的一致
注意:
#public = yes 不需要密码访问
or
#public = true 不需要密码访问
4. 创建Samba用户
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a yyq //yyq为samba的账号, 要于配置文件中的用户名一致 密码简单点可以设置为123456
5. 重启samba服务器
sudo /etc/init.d/smbd restart 或 sudo service smbd restart
6. 连接或使用
ifconfig查看ip:192.168.150.138
windows下打开文件夹,输入
\\ip地址\samba_share
7. 将共享文件夹映射成本地磁盘
这样的文件夹不是磁盘,不能当C盘使用
比如它不能直接拖入PHPstorm编辑器(Sublime可以),所以可以将其映射成本地磁盘
步骤:windows下网络->右键->映射网络驱动器
输入 文件夹框 \ip地址\ShareFiles,按提示输入用户名密码即可。(比如,\192.168.150.199\samba_share)。
二. 卸载Samba
sudo apt-get autoremove samba samba-common
sudo apt-get purge samba samba-common
三. Windows连接不上的问题
ping 虚拟机是通的,ssh连接也没问题,samba服务正常,那就是防火墙捣的鬼
- 1、确保防火墙的关闭,或者将samba设置为白名单,一般本地选择关闭即可
sudo ufw status //查看防火墙状态
sudo ufw enable //开启防火墙
sudo ufw disable //关闭防火墙
如下所示,Status: inactive即为关闭状态
其他防火墙命令:
systemctl status firewalld
# 具体查看 firewalld和ufw的区别,还有iptables的规则。
sudo systemctl disable firewalld //永久关闭
sudo service smbd restart //重启samba
更多防火墙命令了解:
# 临时关闭防火墙,重启会自动打开
systemctl stop firewalld
# 永久防火墙开机自关闭
systemctl disable firewalld
# 临时打开防火墙
systemctl start firewalld
# 防火墙开机启动
systemctl enable firewalld
# 查看防火墙状态
systemctl status firewalld
- 2、如果你是卸载samba又重装的话,记得重新配置samba以及重新添加用户名密码(以防带来不必要的麻烦)
四. ubuntu连接Windows共享盘
smb://192.168.0.210
五. linux 访问局域网的window系统的文件
sudo mount -t cifs //windows_computer_name/shared_folder -o username=uname,password=pass,vers=2.0 /mnt/share
- //windows_computer_name/shared_folder 是你要挂载的Windows共享文件夹的路径。
- /mnt/windows_share 是你在Linux系统中挂载的目标路径。
- username 和 password 是Windows系统中具有访问权限的用户名和密码。
例子:
mount -t cifs //192.168.0.1/抓图 -o username=uname,password=pass,vers=2.0 /mnt/share/
注意:
- /192.168.0.1/抓图 是针对ubuntu的路径,通过smb共享后的文件, 不需要加D盘之类的,直接ip + 文件名字(中文也可)
- username=uname,password=pass 是windows的用户名密码,需要查看windows的用户信息,如果只有ADMINISTRATOR且没有密码的话,需要新建一个用户,并且设置成管理员权限
- 如果ubuntu没有/mnt/share 的话需要创建此目录