终于有点时间来解决下家中NAS需求了。一般自制NAS,只有选Samba。速度比FTP快,便利性比Windows文件夹共享好,设置多等等。

▶参考:samba简介

安装Samba

$ sudo apt-get update$ sudo apt-get install samba samba-common-bin

核心步骤:配置Samba

Samba唯一设置的入口就算一个smb.conf文件,所有变化都依次而来,出了问题也只需要在这里找原因。

配置之前先说明,
这里我不打算只共享一个文件夹,而是共享树莓派连接上的所有外置硬盘。
树莓派的外置硬盘默认挂载在了/media/pi目录下,每个硬盘挂载为/media/pi/drive1,/media/pi/drive2等。
所以不用一个一个共享,直接把/media/pi共享就OK了。
下面配置还会限制:只有pi这个用户可以访问。

常用且肯定没问题的最简单配置如下:

# 编辑Samba的配置文件sudo vim /etc/samba/smb.conf# 文件末尾添加这个共享文件夹的定义:[NAS]comment = NAS External drivepath = /media/pipublic = Yesbrowseable = Yeswriteable = Yesvalid users=pi

其中:

  • valid users:只允许指定的用户和用户组访问

设置Samba用户名和密码

这一步也至关重要,直接影响各设备的访问。
注意,这个用户必须是本机已经在group和user里面都存在的用户,且必须权限设置什么的符合samba要求才行。否则会导致有些设备完全无法访问这个文件夹。
之前试了自己groupadd和useradd本地用户后,又在samba里smbpasswd -a添加用户名密码,结果Mac完全访问不了,Windows也是根据系统的不同有的能访问有的不能访问。
所以这里推荐用树莓派的默认用户名pi:

# 输入Samba用户的访问密码sudo smbpasswd -a pi

重启Samba

# 推荐重启方法(可以看到自检过程)$ sudo /etc/init.d/samba restart

到这一步,如果没出问题的话,就会显示成功:

按照之前的配置,现在你就可以访问Samba共享文件夹了。

访问方法

一般访问方法如下:

  • Windows:直接打开桌面的网络(网上邻居)-> RaspberryPi(树莓派的网络名),然后就可以看到树莓派上所有共享的文件夹和设备了。
  • Mac: 稍微麻烦一点,在Finder中点击菜单 -> Go -> Connect to server -> 输入smb://IP地址,按照要求输入本机或树莓派的Samba用户名密码:

然后可以看到,目录中和本地目录几乎没什么区别:能看预览,支持所有文件夹正常的快捷键,随意拷贝粘贴,这是FTP远不能比的。

将Samba的共享目录映射到本地

Windows上,直接在文件夹里点击菜单->工具->映射网络驱动器。然后选择映射出来的驱动盘字母,点击浏览,选择网络邻居里的树莓派,确定完成。就会在本地的计算机里显示出映射磁盘了。

Mac上,一般在文件夹里面通过Cmd+K连接服务器后打开共享文件夹后,系统就会自动把它挂载到/Volumes/你的共享文件夹名这里。可以直接通过命令行随意访问。然后即使桌面上的文件夹关闭后,也还是可以在命令行里正常访问。

多用户访问Samba

我们用Samba,就肯定有多用户需求。
但是多用户问题恰是Samba最麻烦的地方,如果是像我这样对Linux用户权限不熟悉的话。

首先需要明了:Samba的里面添加的用户,必须是Linux已经存在的用户!
而且这个用户必须有相应的权限,才行。

所以多用户策略大概如下:

  • 创建Linux本机用户组,并赋予相应权限
  • 创建Linux本机的用户,并赋予相应权限
  • 创建共享文件夹,修改文件夹权限,修改文件夹所有者,改为对应的Samba用户或用户组
  • 创建与Linux用户对应的Samba用户,并创建密码
  • 在Samba配置文件里面,声明有权访问共享文件夹的用户或用户组

注意:挂载的NTFS磁盘,是不支持unix体系的group和user的,所以里面的文件默认所有者和所属组都是root。要解决这个,需要在mount挂载时就指定所有者,但是也不能分别指定里面某个文件夹或目录的所有者。

Samba调试

Samba的自检程序testparm

自动测试,并显示Samba所有的共享和定义:

$ testparm

列出当前所有已注册的Samba用户

$ sudo pdbedit -L

使用smbclient测试

smbclinet是命令行客户端,需要下载安装使用:

# 安装$ sudo apt-get install smbclient# 连接Samba服务器$ smbclient //192.168.1.111/share -U sambaUser01$ smb: ls

如果连接成功,就会进入smb的交互shell,然后输入ls,成功列出目录,则连接完全成功。
这是常用的最方便的测试方法,如果有任何一点不成功,这个连接命令都无法执行。
只要这里能够正常访问,那么其它地方都没有问题。

常见问题

Mac上能用guest访问却不能用设置了的用户访问

这个是你的Samba用户设置出了问题。
有可能是Samba中定义的用户,在本机中权限不够。
解决方法就是:

  • 直接用树莓派的原生用户pi,或
  • 仔细研究新创建的用户权限,添加好了再到Samba配置中设置

原生用户pi以外的用户都不能访问外置磁盘

尝试过多用户方案,只要不是外置磁盘,都能正常访问、读写。
但是插的U盘,外置移动硬盘,除了pi用户以外全都只能进入,不能写入。
就算把新建用户升级到超级用户,
就算把文件目录的所有者改为新建的用户,
也还是一样的。

消除来自Mac的.DS_Store文件安全隐患

Mac上访问远程文件夹会留下.DS_Store文件,其中包含太多信息这样很不安全。
所以我们要在Mac上设置,在访问远程文件夹时不留下这个文件:

$ defaults write com.apple.desktopservices DSDontWriteNetworkStores true

但是以上方法不是完全生效,目前MacOS 10.12以上都不一定能生效。

访问外置硬盘Permission Denied

这个也是用户权限问题,配置原生pi用户就没问题了。

osx samba 您输入的服务器用户名或密码无效_低配高体验,PC机改装ubuntu当NAS服务器图文教程相关推荐

  1. 服务器无响应 错误691,错误 691:由于域上的用户名和/密码无效而拒绝访问的原因及解决办法...

    当我们使用ADSL宽带连接上网的时候,由于网络不稳定的原因,难免会遇到"在核对用户名和密码"的时候,出现:"错误 691:由于域上的用户名和/密码无效而拒绝访问" ...

  2. 服务器账号密码更改,如何更改服务器用户名和密码

    如何更改服务器用户名和密码 1修改服务器用户名: 服务器如果想要更安全的话,必须把初始账户停用掉,然后重新建立一个新的自定义用户.但是新增一个用户,把默认账户删掉或停用后经常会出现不能更改用户名,百思 ...

  3. win10系统连接服务器的用户名多少,win10 ftp服务器 用户名和密码

    win10 ftp服务器 用户名和密码 内容精选 换一换 CDM支持周期性自动将新增文件上传到OBS,不需要写代码,也不需要用户频繁手动上传即可使用OBS的海量存储能力进行文件备份.这里以CDM周期性 ...

  4. icloud连接服务器时出现问题_ios13 ipad/iphone与windows 连接传输文件显示连接服务器用户或密码无效解决方法...

    ios 13 中ipad/iphone 可以通过文件共享传输文件,效果不错.以下是建立的方法. 进击的555:如何在电脑和Ipad平板之间高效互传?​zhuanlan.zhihu.com 奈何连接时一 ...

  5. python注册用户名和密码登录_用户名和密码登录

    我想创建一个登录,其中将打开一个文本/csv文件,从文件中读取"有效"的用户名和密码,然后如果用户添加的内容与文件中的内容匹配,那么它将允许访问程序的其余部分 如何将下面的代码集成 ...

  6. 计算机怎么新建用户名和密码,win10怎么新建用户账户?win10系统如何创建新用户?(图文)...

    今天教大家如何在win10系统里创建新用户.众所周知,windows的系统都是可以同时创建多个用户账户的,win10自然也不例外.不过win10相对于之前的系统版本,在菜单界面上做了不少的改动,导致很 ...

  7. 低配服务器装那个系统吗,用低配服务器好还是高配vps

    用低配服务器好还是高配vps 内容精选 换一换 久泽科技携手华为云,共同探索AI+云手机的垂直场景应用.基于华为云云手机服务和可自由扩展的云端CPU,久泽科技专注于在移动互联网.企事业智能办公.智能营 ...

  8. outlook不断弹出“对以下服务器输入您的用户名和密码”

    解决方法:确保您已在您的网页版邮箱中为您的邮箱账户启用了IMAP/POP功能,启用后可能会给您一个应用密码. https://social.technet.microsoft.com/Forums/z ...

  9. foxmail收件服务器用户名,谁用Foxmail邮箱呀 我在iPhone添加邮箱 有谁知道收件服务器怎么填...

    满意答案 lupeng251 2016.10.19 采纳率:55%    等级:9 已帮助:615人 通过手机客户端绑定邮箱,方法和步骤: 首先,需要电脑浏览器登陆到QQ邮箱mail.qq.com(设 ...

最新文章

  1. @class和#import
  2. 洛谷2014选课(树型dp)
  3. 基于开源CA系统ejbca community 6.3.1.1构建私有CA管理数字证书
  4. 【SQL】在SQL Server中多表关联查询问题
  5. 研发部 架构师 定义解读
  6. Change Fiori launchpad logo
  7. 反射--获取当前子类父类的泛型类型
  8. Python 玩出花了!一文教你用 Python 制作吃豆人游戏! | 附代码
  9. 技术面试者的技术深度和广度
  10. 20155320 Exp3 免杀原理与实践
  11. 【读史笔记】《晋书·卫玠列传》
  12. Linux 常用的zip压缩和解压命令详解
  13. 模糊C均值聚类算法matlab实现,FCMClust(模糊c均值聚类算法MATLAB实现)
  14. d3 地图长宽比调整
  15. javaScript中的特殊字符
  16. `SpringBoot`+`axios`结合发送`ajax`请求
  17. es6 迭代器(遍历器)Iterator 自定义遍历器 lterator/简单模拟values方法 for of运行机制 Array/Set/Map默认迭代器接口 对象设置迭代器
  18. 天狼星-冬季大三角最亮的一颗星
  19. 大龄程序员该何去何从,35岁后的路在何方
  20. C语言中三个数排列大小,C语言三个数排列大小的实现方法

热门文章

  1. [转]TrueType字体结构
  2. 王仕鹏压哨三分 中国1分逆转晋级
  3. 利用MATlab实现简单的曲线图片识别
  4. sklearn 数据处理与特征工程
  5. 进击的无源光网络:产业园区里的“追光者”
  6. 7.python解答2018年第九届蓝桥杯省赛C++A组 分数
  7. 网络规划---时标网络计划图
  8. 西门子PLC1200模拟量到底是4-20ma还是0-20ma?
  9. 如果焊接也需要打怪升级,你在哪一级?
  10. 当前元素_leetcode315. 计算右侧小于当前元素的个数