ubuntu 16.04 利用samba 共享移动硬盘
Windows 下面如何访问到ubuntu 下的一个移动硬盘呢,一开始当然是考虑到samba 这个工具了。
没有什么好说的,立即安装一个samba
sudo apt-get install samba
添加系统用户账户
sudo adduser samba_user1
添加samba 共享用户账户
sudo smbpasswd -a samba_user1
按照 通用的去配置 smb.cnf,添加共享u disk 方法。
sudo vi /etc/samba/smb.cnf
[u_disk]
comment = share removable hardware disk
path = /media/xxxx/Elements/
public = yes
writable = yes
valid_users = samba_user1
force user = samba_user1
available = yes
browseable =yes
unix charset= UTF-8
dos charset= cp936
在 windows 端能看到u_disk共享名,但是就是无法点击进入访问,增加了 force user = samba_user1 也是一样的效果,无法访问,有权限的问题。
后来测试在home 目录下去通过samba 去共享一些目录,访问时是没有问题的。
这说明smb.cnf 配置应该是没有问题,问题可能还是u disk 的配置导致了访问错误。
后来参考了Cloud Chou 关于 树莓派共享硬盘的方案。
新建文件/etc/udev/rules.d/99-udisks2.rules,内容如下:
# By default, udisks2 mounts removable drives under the ACL controlled directory
# /run/media/$USER/. If you wish to mount to /media instead, use this rule:
# set DISKS_FILESYSTEM_SHARED =1
# UDISKS_FILESYSTEM_SHARED
# ==1: mount filesystem to a shared directory (/media/VolumeName)
# ==0: mount filesystem to a private directory (/run/media/$USER/VolumeName)
# See udisks(8)
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"
绑定挂载
sudo apt-get install bindfs
然后创建新的挂载点,并利用bindfs进行绑定挂载:
sudo mkdir /mnt/media
bindfs -o perms=0775 /media /mnt/media
这样新挂载点/mnt/media的权限就是0775,任何用户都可以访问了, 不过这只是临时挂载, 可以通过修改/etc/rc.local文件来实现开机时自动挂载,代码如下所示:
# ...
bindfs -o perms=0775 /media /mnt/media
exit 0
最后修改samba配置文件smb.cnf,让其在局域网内共享,修改path=/mnt/media/xxxx/Elements/
[u_disk]
comment = share removable hardware disk
path = /mnt/media/xxxx/Elements/
public = yes
writable = yes
valid_users = samba_user1
force user = samba_user1
available = yes
browseable =yes
unix charset= UTF-8
dos charset= cp936
最后重新启动下ubuntu ,再重新连接下共享目录,就可以正常访问了。