ArchLinux局域网共享文件
安装必备软件
1 | sudo pacman -S nautilus-share |
注意:安装nautilus-share
插件后,pacman
将会自动安装上samba
等依赖软件,所以仅此一条指令就可以实现gnome3
下的nautilus
配置共享目录。
启用用户共享功能
在用户可以共享目录之前,管理员必须在 Samba 中启用用户共享。本节参考:3.11. 允许用户在 Samba 服务器上共享目录
例如,仅允许本地 example 组的成员创建用户共享:
如果
example
不存在,则创建它1
sudo groupadd example
为
Samba
准备目录以存储用户共享定义并正确设置其权限。例如:创建目录
1
sudo mkdir -p /var/lib/samba/usershares/
为
example
组设置权限1
2sudo chgrp example /var/lib/samba/usershares/
sudo chmod 1770 /var/lib/samba/usershares/设置粘性位以防止用户重命名或删除此目录中其他用户存储的文件。
若
/etc/samba/smb.conf
文件不存在,则参考smb.conf.default建立smb.conf
,并将以下内容添加到[global]
部分(默认配置中并没有这两项):设置您配置用来存储用户共享定义的目录的路径。例如:
1
usershare path = /var/lib/samba/usershares/
设置允许在这个服务器上创建多少个用户共享
Samba
。例如:1
usershare max shares = 100
如果您对 usershare max shares 参数使用默认值 0,则用户共享将被禁用。
验证
/etc/samba/smb.conf
文件1
testparm
重新载入
Samba
配置1
sudo smbcontrol all reload-config
用户现在可以创建用户共享。
- 支持软链接访问(可选)
在/etc/samba/smb.conf
的[global]
节的最后,加上下面三条设置:
1
2
3follow symlinks = yes
wide links = yes
unix extensions = no
- 重启
samba
服务1
sudo systemctl restart smb
参考文章: Ubuntu配置samba服务器
ArchLinux 中共享文件夹的步骤
步骤 1: 打开文件管理器,右键单击共享的文件夹。点击上下文菜单中的“本地网络共享”选项。
步骤 2: 在文件夹共享对话框中点击共享文件夹复选框。
这将在你的系统中安装 Samba 软件包。Samba 用于在 Windows 和 Unix 系统之间通过网络共享文件和打印机。
步骤 3: 安装 Samba 后,执行以下操作共享文件夹或目录。
- 选中共享文件夹复选框。
- 输入共享名称。这将是你从另一个系统(如 Windows)看到的名称。尽量不要使用任何带有空格的名称。
- (可选)通过勾选相应选项,你可以控制共享文件夹的写入权限,以及允许访客访问。
- 如果你允许访客访问,则没有凭据的人可以访问共享文件夹。所以要谨慎。
- 如果你希望用户输入用户名和密码,打开终端并运行以下命令。
1 | sudo smbpasswd -a 用户名 |
用户名
应该是对应 ArchLinux 系统的有效用户。
现在,你应该已经设置好了共享的文件夹或目录。
如何访问共享文件夹
从 Linux 系统中访问共享文件夹,你需要系统的 IP 地址或主机名。为此,打开“系统设置System Settings -> Wi-Fi -> 获取 IP 地址Get the IP address”。
如果你运行的是 Linux 发行版不是
Ubuntu,此步骤略有不同。你可能想运行 ip addr
来获取 IP
地址,如下所示:
一旦你获得 IP 地址,就可以在 Linux
系统中打开文件管理器
,然后在地址栏中输入以下内容。注意:你应该修改为你系统的 IP 地址
。
你现在可以看到共享文件夹上面显示了一个小共享图标,表示网络共享文件夹。
要在 Windows
系统 访问共享文件夹,打开运行(按下 Windows + R
)或打开资源管理器,输入以下地址。注意:你应该修改为你系统的
IP 地址和文件夹名称。
1 | \\192.168.43.19\Folder |
你应该能够查看共享文件夹的内容,并根据授予的权限修改它。本节参考:如何在 Ubuntu/Linux 和 Windows 之间共享文件夹
关闭 samba 异步提高网速
默认情况下,Samba
写操作是异步的,这导致了读取速度减半。在千兆局域网速下,Samba
写入速度应当在100m/s
,
但是读取速度只有50m/s
, 解决方法为:关闭异步,
在配置文件/etc/samba/smb.conf
的
[global]
节点下追加上如下代码
1 | aio read size = 0 |