文件共享Samba
安装samba
yay -S samba manjaro-settings-samba
注:只安装samba时,/etc/samba
目录里并不自带默认配置文件samba.conf
,无法启动服务。网上有人提示说manjaro还需要安装相关的辅助软件[1],最后查到manjaro官网有一篇解释:在你的文件管理器中使用Samba,简单意思就是不同的桌面环境需要安装不同的辅助包,并且给出了对应表。我并没有按照文章里说的做,我只补充安装了manjaro-settings-samba,但也正常出现了默认samba.conf
文件,并且可以启动服务:
systemctl start smb
没有提示就说明服务启动正常。
修改配置文件
配置文件/etc/samba/smb.conf
,先把默认的配置文件复制到别处备份一下,再修改配置文件。修改配置文件会用到root权限,谨慎操作。配置文件中有几个部分,其中[homes]
是可以给我们修改的,不过你也可以令外建一个部分,把[homes]
中的内容复制过去,“homes”这个单词改掉,然后再做修改(防止把原文改乱了)。以下是我做的修改:
[homes]
comment = Home Directories
browseable = yes #改
read only = no #改
writable = yes #新
path = /home/share #新
create mask = 0700
directory mask = 0700
valid users = %S
path
就是共享目录的路径了,需要自己创建这个目录,记得写一个好找并且自己对权限有把握的路径。
此配置文件中每个参数的详细功能详见其他资料[2]
创建samba账户
添加一个samba用户,并设置密码:
sudo smbpasswd -a 用户名
此命令只能使用权限运行,否则无效。-a
意思是添加用户。
这个用户名是给其他计算机访问这台Linux时提供一个认证,和linux用户没有关系,也可以重名。密码为空也可以,推荐设置一个,与linux用户密码相同也可以。
查看所有Samba用户[3],查看对应IP上的samba服务器[4],也都需要权限,分别如下:
sudo pdbedit -L
sudo smbclient -L IP地址 #举例,查看本机: smbclient -L 127.0.0.1
开放共享目录给所有用户:
chmod 777 /home/share/ -R
chmod 777
意思是开放所有权限给所有人,不给权限会拒绝访问。-R
代表递归修改文件和目录。
开放所有权限并不是好做法,应该有更好的方法,但是懒得折腾了。
连接
Samba由两个主要程序组成,它们是smbd和nmb[5]。只需要用文件共享的话只需要开启smb就好了。
现在重启一下服务:
systemctl restart smb
在Windows资源管理器的地址栏输入类似//192.168.0.7
这样的Linux的IP地址就可以看到共享的文件夹了,但是还不能传文件。
在资源管理器左边目录列表最下面,右键点“网络”->“映射网络驱动器...”->选盘符(随意)->浏览->点我们设的共享目录->会提示一个网络错误,点取消->确定->勾选使用其他凭据连接->完成->输入之前设置的samba用户名和密码。
一切完成之后就可以读写这个共享目录了。
真的是非常方便。