利用samba搭建共享文件系统,可以满足办公区内网里不同操作系统之间的文件共享:
sudo apt install samba
该服务自动设置为开机启动项,由systemctl管控:
sudo systemctl start smbd
sudo systemctl stop smbd
sudo systemctl restart smbd
sudo systemctl status smbd
samba的功能很强大,可以通过man smb.conf查看其配置说明,复杂功能可以实现每个人一个账户,跟ubuntu里服务的用户和群组同步,比如在windows上访问时\\xxx.xxx.xxx.xxx\username,可以直接访问对应ubuntu里该用户的整个home目录,用户名和密码也是跟ubuntu tty的登录时的一样。所以如下命令:
sudo smbpasswd -a username
其username必须是useradd过的ubuntu账户。
这里先记录最简单的使用,即共享文件,所有内网的电脑都可以访问该文件夹,而无需账户和密码。
编辑/etc/samba/smb.conf配置文件,在末尾添加:
[Share]
path = /mnt/data/Share
available = yes
browseable = yes
public = yes
writable = yes
create mask = 0777
directory mask = 0777
force user = nobody
force group = nogroup
这样在windows下就能\\xxx.xxx.xxx.xxx\Share访问/mnt/data/Share目录了,上传的文件owner为nobody:nogroup,读写权限为0777。在Mac下就是访问smb://xxx.xxx.xxx.xxx/Share。
特别注意:由于访问者是以nobody身份进行访问的,所以/mnt/data目录必须要有可执行权限。要控制共享的某些文件不被任何人删除,可以去掉其写权限。
特别注意:比如访问samba是使用的xxx.example.org域名,那一定要在服务器上配置hosts,添加127.0.0.1 xxx.example.org,否则会很卡。诡异的问题。