我需要在同一内网下,Linux 作为文件服务,Windows 读取或写入文件,感觉 Samba 比较合适,所以写一下
Samba 是一个开源软件套件,实现了不同操作系统之间的文件共享和网络资源共享的功能,通过支持 SMB/CIFS 协议,使 Linux、Unix、Windows 等系统能够互相通信和共享文件
安装
sudo apt-get install samba
配置
打开 Samba 配置文件
sudo nano /etc/samba/smb.conf
在文件结尾添加共享文件夹的配置
例如下面这个
共享名称为 Pictures
描述为 Shared Pictures
指定可以访问的用户为 pi
设置仅可读为 no
[Pictures]
comment = Shared Pictures
path = /home/pi/Pictures
valid users = pi
read only = no
以下是一些常见的配置项及其功能:
[global] 部分:
workgroup:定义工作组的名称,用于标识网络中的计算机群组。
server string:指定服务器的描述字符串。
security:设置安全级别,例如使用用户身份验证。
map to guest:定义未经身份验证的访问行为。
[share] 部分(将"share"替换为共享名称):
comment:提供共享的注释或描述信息。
path:指定共享的文件夹路径。
valid users:定义可以访问共享的用户列表。
read only:设置共享是否为只读模式。
writable:指定共享是否可写入。
guest ok:允许访客(未经身份验证)访问共享。
browseable:控制共享是否在网络上可浏览。
身份验证和权限设置:
username map:映射不同的用户名,以使Samba中的用户名与系统中的用户名匹配。
valid users:定义可以访问共享的用户列表。
invalid users:定义被拒绝访问共享的用户列表。
write list:指定可以写入共享的用户列表。
create mask 和 directory mask:设置新创建的文件和目录的默认权限掩码。
其他选项:
hosts allow 和 hosts deny:允许或拒绝特定主机或IP地址的访问。
printing:启用或禁用打印功能。
printcap name:指定打印机配置文件的名称。
printer admin:指定打印机管理员的用户列表。
创建 Samba 用户密码
运行以下命令创建 Samba 用户密码,pi 为创建的用户名,回车后会提示输入密码
sudo smbpasswd -a pi
重启 Samba 服务
运行以下命令以重新启动 Samba 服务,以使配置更改生效
记得放行 139 端口
sudo service smbd restart