Linux 与 Windows 之间的内网共享还有 samba 的一些小知识
最近内网搞了个 Linux 当办公机,于是内网之间文件共享就成了问题。最近刚好搞了一下有一点小心得共享一下。
Windows 的文件共享方式我就不累述了,百度上有很多教程,无脑照做就行了。唯一需要注意的就是用户权限。
如果你是用微软账号登陆的话,需要去找一下你的实际用户名是什么,有的时候不支持账号直接登录,需要使用用户名。因为很多时候微软账号不等于用户名。
Linux 使用 Windows 共享
Linux 使用的方法就是挂载。把 Windows 的文件夹挂载到自己的目录里。这有一点需要注意的是,挂载目标的目录必须实际存在,不能写一个不存在的目录让 Linux 自己去生成。挂载不是快捷方式,没办法那么用。
所以第一步就是创建一个目标文件夹,命令很简单。
mkdir /home/user/filename //我这里使用的例子是在自己的个人文件夹里创建了一个文件夹
这一步搞完我们就可以开始挂载了。命令如下:
mount -t cifs '//IP/Path' '/home/user/filename' -o username=username,password=password
地址用单引号包裹可以兼容地址里的空格。这里还有有一点需要注意的是 Windows 的路径使用的是反斜杠 “\”,在 Linux 中反斜杠一般都用来转义,所以 Windows 地址里所有的反斜杠用到 Linux 里的时候要改成正斜杠。其他就没有什么需要注意的内容了。
这个挂载,是一次性,关机重启就失效了,如果想长期有效需要把它加入开机启动的挂载项里。
vim /etc/fstab //最末尾加入一行 '//IP/Path' '/home/user/fliename' cifs defaults,username=username,password=password 0 2
有关于 fstab 的讲解点这里。
Samba
Samba 是个很有意思的程序。首先它使用的用户必须在系统里有实际用户,这样操作权限也比较容易理解。但是当你设置公共文件夹的时候就复杂一点了。 首先我们先准备用户。
groupadd samba //创建samba组,方便管理权限,当然也可以不需要或者是使用别的组。 useradd -g samba -s /sbin/nologin username //创建一个无法用shell登录的用户,此用户不需要密码。你也可以按照实际情况选择。
这样需要用的用户名就创建完了,接下来讲重点。
Samba 的登录用户名和密码是通过一个单独的数据库管理的,具体原理可以参见百度,遍地都是。Samba 会有自己单独的密码策略,这样做安全性会有所提高。
smbpasswd -a username //添加一个新的samba用户 New SMB password: //输入要设置的密码 Retype new SMB password: //再次输入,注意Samba是有一定强度的密码策略的,可能要多试几次。
到这里用户基本就搞定了。
记下来需要编辑一下 Samba 的配置文件,做一个共享文件夹,配置模板百度全网有很多,我这里只用我自用的举例。
vim /etc/samba/smb.conf //在最末尾加入以下文本块 [filename] path = /usr/filename available = yes valid users = username read only = no browsable = yes public = yes writable = yes create mask = 0775 //这里标明了用户权限 directory mask = 0775
不光 Samba 进行了权限限制,Linux 自身的权限限制也会生效,按需设置即可,唯一需要注意的是子文件夹的访问权限是 r-x。4 和 6 都无法进入子文件夹,必须用 5 或者 7。建议 775。 最后就是标准化的流程了,启动服务加入开机自启动。
systemctl start smbd systemctl enable smbd
有的时候配置完了,可以正常登陆并看到文件夹但是无法访问可能是红帽派的 Linux 启用了 selinux 的缘故,如果不会修改的话,直接关掉比较好。
Over,enjoy it!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库