1. 程式人生 > >ubuntu 16.04 利用samba 共享行動硬碟

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 ,再重新連線下共享目錄,就可以正常訪問了。