当前位置: 首页 > Linux

Ubuntu安装Samba文件共享服务器(NAS)

时间:2023-04-06 11:22:45 Linux

终于有时间解决家里的NAS需求了。一般自制NAS,只能选择Samba。速度比FTP快,方便比Windows文件夹共享好,设置多等等。?参考:samba简介安装Samba$sudoapt-getupdate$sudoapt-getinstallsambasamba-common-bin核心步骤:配置SambaSamba设置的唯一入口是一个smb.conf文件,所有的改动都是按顺序进行的.问题只需要到这里找原因即可。配置前先说明一下,这里我不打算只共享一个文件夹,而是共享树莓派连接的所有外置硬盘。树莓派的外接硬盘默认挂载在/media/pi目录下,每个硬盘挂载为/media/pi/drive1、/media/pi/drive2等,所以不用一个一个共享,直接分享/media/pi就可以了。下面的配置也会限制:只有用户pi可以访问。最简单的常用且绝对没问题的配置如下:#编辑Samba配置文件sudovim/etc/samba/smb.conf#在文件末尾加入这个共享文件夹的定义:[NAS]comment=NASExternaldrivepath=/media/pipublic=Yesbrowseable=Yeswriteable=Yesvalidusers=pi其中:有效用户:只允许指定的用户和用户组访问设置Samba用户名和密码也很重要,直接影响到的访问每个设备。注意这个用户必须是本机的组和用户中已经存在的用户,权限设置必须满足samba的要求。否则,某些设备将根本无法访问此文件夹。之前尝试自己的groupadd和useradd本地用户后,我在samba中的smbpasswd-a中添加了用户名和密码。导致Mac根本无法访问,Windows可以访问也可以不访问取决于系统。所以建议使用树莓派默认的用户名pi:#输入Samba用户的访问密码sudosmbpasswd-api重启Samba#推荐重启方式(可以看到自检过程)$sudo/etc/init.d/sambarestart此时如果没有问题就显示成功:按照之前的配置,现在可以访问Samba共享文件夹了。访问方法一般访问方法如下:Windows:直接打开桌面网络(网上邻居)->RaspberryPi(树莓派的网络名),即可看到树莓派上的所有共享文件夹和设备。麦克:有点麻烦。在Finder中点击菜单->前往->连接服务器->输入smb://IP地址,按要求输入本机或树莓派的Samba用户名和密码:然后可以看到目录里面几乎没有本地目录与本地目录的区别:可以看到预览,支持所有文件夹的普通快捷键,随意复制粘贴,远超FTP。将Samba共享目录映射到本地Windows,直接在文件夹中点击菜单->工具->映射网络驱动器。然后选择映射的盘符,点击浏览,在网上邻居中选择树莓派,确定完成。映射的磁盘将显示在本地计算机上。在Mac上,在文件夹中通过Cmd+K连接服务器后打开共享文件夹后,系统会自动挂载到/Volumes/你的共享文件夹名称。可以随意直接通过命令行访问。那么即使桌面上的文件夹关闭了,在命令行中仍然可以正常访问。多用户访问Samba如果我们使用Samba,肯定有多个用户的需求。但是多用户问题恰恰是Samba最麻烦的地方,如果你像我一样不熟悉Linux用户权限的话。首先需要明确一点:Samba中添加的用户必须是Linux中已经存在的用户!而且这个用户必须有相应的权限。所以多用户策略大致如下:创建Linux原生用户组,并赋予相应权限创建Linux原生用户,赋予相应权限创建共享文件夹,修改文件夹权限,修改文件夹属主,以及改成对应的Samba用户或用户组创建Linux用户对应的Samba用户,并在Samba配置文件中创建密码,声明有权访问共享文件夹的用户或用户组注意:挂载的NTFSdisk不支持Unix系统用户的组和组,所以里面的文件默认所有者和组都是root。为了解决这个问题,需要在挂载时指定属主,但不能指定里面文件夹或目录的属主。Samba调试Samba的自检程序testparm自动测试并显示所有Samba共享和定义:$testparm列出所有当前注册的Samba用户$sudopdbedit-L使用smbclient进行测试smbclinet是一个命令行客户端,需要下载并安装:#安装$sudoapt-getinstallsmbclient#连接Samba服务器$smbclient//192.168.1.111/share-UsambaUser01$smb:ls连接成功后会进入smb的交互shell,然后输入ls成功列出目录,连接完全成功。这是最方便的常用测试方法。如果存在任何故障点,则无法执行连接命令。只要这里能正常访问,其他地方就没有问题。常见问题解答在Mac上,您可以使用来宾访问,但不能使用配置的用户。这是您的Samba用户设置的问题。可能是Samba中定义的用户在本机权限不足。解决方法是:直接使用树莓派原来的用户pi,或者仔细研究新建的用户权限,添加,然后在Samba配置中设置原来用户pi以外的用户不能访问外接磁盘。尝试太多用户解决方案。只要不是外接磁盘,都可以正常访问、读写。但是插入的U盘和外置移动硬盘除pi用户外只能访问,不能写入。即使新创建的用户升级为超级用户,即使文件目录的所有者更改为新创建的用户,还是一样。消除来自Mac的.DS_Store文件的安全隐患在Mac上访问远程文件夹会留下包含太多信息的.DS_Store文件,不安全。所以我们需要在Mac上设置一下,这样在访问远程文件夹的时候就不会留下这个文件:$defaultswritecom.apple.desktopservicesDSDontWriteNetworkStorestrue但是上面的方法并不是完全有效,目前MacOS10.12以上可能不行有效的。AccessingtheexternalharddiskPermissionDenied也是用户权限问题,配置nativepiuser是没有问题的。