Ubuntu安裝Samba文件共享服務器(NAS)

終于有點時間來解決下家中NAS需求了。一般自制NAS,只有選Samba。速度比FTP快,便利性比Windows文件夾共享好,設置多等等。

?參考:samba簡介

安裝Samba

$ sudo apt-get update
$ sudo apt-get install samba samba-common-bin

核心步驟:配置Samba

Samba唯一設置的入口就算一個smb.conf文件,所有變化都依次而來,出了問題也只需要在這里找原因。

配置之前先說明,
這里我不打算只共享一個文件夾,而是共享樹莓派連接上的所有外置硬盤。
樹莓派的外置硬盤默認掛載在了/media/pi目錄下,每個硬盤掛載為/media/pi/drive1/media/pi/drive2等。
所以不用一個一個共享,直接把/media/pi共享就OK了。
下面配置還會限制:只有pi這個用戶可以訪問。

常用且肯定沒問題的最簡單配置如下:

# 編輯Samba的配置文件
sudo vim /etc/samba/smb.conf# 文件末尾添加這個共享文件夾的定義:
[NAS]
comment = NAS External drive
path = /media/pi
public = Yes
browseable = Yes
writeable = Yes
valid users=pi

其中:

  • valid users:只允許指定的用戶和用戶組訪問

設置Samba用戶名和密碼

這一步也至關重要,直接影響各設備的訪問。
注意,這個用戶必須是本機已經在group和user里面都存在的用戶,且必須權限設置什么的符合samba要求才行。否則會導致有些設備完全無法訪問這個文件夾。
之前試了自己groupadduseradd本地用戶后,又在samba里smbpasswd -a添加用戶名密碼,結果Mac完全訪問不了,Windows也是根據系統的不同有的能訪問有的不能訪問。
所以這里推薦用樹莓派的默認用戶名pi

# 輸入Samba用戶的訪問密碼
sudo smbpasswd -a pi

重啟Samba

# 推薦重啟方法(可以看到自檢過程)
$ sudo /etc/init.d/samba restart

到這一步,如果沒出問題的話,就會顯示成功:
image

按照之前的配置,現在你就可以訪問Samba共享文件夾了。

訪問方法

一般訪問方法如下:

  • Windows:直接打開桌面的網絡(網上鄰居)-> RaspberryPi(樹莓派的網絡名),然后就可以看到樹莓派上所有共享的文件夾和設備了。
  • Mac: 稍微麻煩一點,在Finder中點擊菜單 -> Go -> Connect to server -> 輸入smb://IP地址,按照要求輸入本機或樹莓派的Samba用戶名密碼:

image

然后可以看到,目錄中和本地目錄幾乎沒什么區別:能看預覽,支持所有文件夾正常的快捷鍵,隨意拷貝粘貼,這是FTP遠不能比的。

image

將Samba的共享目錄映射到本地

Windows上,直接在文件夾里點擊菜單->工具->映射網絡驅動器。然后選擇映射出來的驅動盤字母,點擊瀏覽,選擇網絡鄰居里的樹莓派,確定完成。就會在本地的計算機里顯示出映射磁盤了。

Mac上,一般在文件夾里面通過Cmd+K連接服務器后打開共享文件夾后,系統就會自動把它掛載到/Volumes/你的共享文件夾名這里。可以直接通過命令行隨意訪問。然后即使桌面上的文件夾關閉后,也還是可以在命令行里正常訪問。

多用戶訪問Samba

我們用Samba,就肯定有多用戶需求。
但是多用戶問題恰是Samba最麻煩的地方,如果是像我這樣對Linux用戶權限不熟悉的話。

首先需要明了:
Samba的里面添加的用戶,必須是Linux已經存在的用戶!
而且這個用戶必須有相應的權限,才行。

所以多用戶策略大概如下:

  • 創建Linux本機用戶組,并賦予相應權限
  • 創建Linux本機的用戶,并賦予相應權限
  • 創建共享文件夾,修改文件夾權限,修改文件夾所有者,改為對應的Samba用戶或用戶組
  • 創建與Linux用戶對應的Samba用戶,并創建密碼
  • 在Samba配置文件里面,聲明有權訪問共享文件夾的用戶或用戶組
注意:掛載的NTFS磁盤,是不支持unix體系的group和user的,所以里面的文件默認所有者和所屬組都是root。要解決這個,需要在mount掛載時就指定所有者,但是也不能分別指定里面某個文件夾或目錄的所有者。

Samba調試

Samba的自檢程序testparm

自動測試,并顯示Samba所有的共享和定義:

$ testparm

image

列出當前所有已注冊的Samba用戶

$ sudo pdbedit -L

image

使用smbclient測試

smbclinet是命令行客戶端,需要下載安裝使用:

# 安裝
$ sudo apt-get install smbclient# 連接Samba服務器
$ smbclient //192.168.1.111/share -U sambaUser01$ smb: ls

如果連接成功,就會進入smb的交互shell,然后輸入ls,成功列出目錄,則連接完全成功。
這是常用的最方便的測試方法,如果有任何一點不成功,這個連接命令都無法執行。
只要這里能夠正常訪問,那么其它地方都沒有問題。

常見問題

Mac上能用guest訪問卻不能用設置了的用戶訪問

這個是你的Samba用戶設置出了問題。
有可能是Samba中定義的用戶,在本機中權限不夠。
解決方法就是:

  • 直接用樹莓派的原生用戶pi,或
  • 仔細研究新創建的用戶權限,添加好了再到Samba配置中設置

原生用戶pi以外的用戶都不能訪問外置磁盤

嘗試過多用戶方案,只要不是外置磁盤,都能正常訪問、讀寫。
但是插的U盤,外置移動硬盤,除了pi用戶以外全都只能進入,不能寫入。
就算把新建用戶升級到超級用戶,
就算把文件目錄的所有者改為新建的用戶,
也還是一樣的。

消除來自Mac的.DS_Store文件安全隱患

Mac上訪問遠程文件夾會留下.DS_Store文件,其中包含太多信息這樣很不安全。
所以我們要在Mac上設置,在訪問遠程文件夾時不留下這個文件:

$ defaults write com.apple.desktopservices DSDontWriteNetworkStores true

但是以上方法不是完全生效,目前MacOS 10.12以上都不一定能生效。

訪問外置硬盤Permission Denied

這個也是用戶權限問題,配置原生pi用戶就沒問題了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280529.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280529.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280529.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

剛畢業的ERP實施顧問做甲方

我剛畢業進入了一家小公司做ERP實施顧問,是一個臺灣的ERP軟件,就簡單培訓了一天,第二天就進入一家客戶公司解決問題,軟件都還沒有熟悉呢,更別說業務流程了,一天下來,人家員工問一個問題我記下來…

django21:admin后臺管理\media配置\圖片防盜鏈\暴露后端資源\路由分發\時間分類

admin后臺管理 創建超級用戶 createsuperuser 1.到應用下的admin.py注冊模型表 from django.contrib import admin from blog import models # Register your models here.admin.site.register(models.UserInfo) admin.site.register(models.Article) admin.site.register(m…

Flask博客開發——Tinymce編輯器

之前Flask博客的文本編輯器比較簡陋,這里為博客添加個優雅易用的Tinymce文本編輯器。 github見:https://github.com/ikheu/my_flasky 1 項目中添加Tinymce 下載好Tinymce包以及語言包,并添加到項目中。添加到項目的方法,參考了這篇…

Go開發Struct轉換成map兩種方式比較

最近做Go開發的時候接觸到了一個新的orm第三方框架gorose,在使用的過程中,發現沒有類似beego進行直接對struct結構進行操作的方法,有部分API是通過map進行數據庫相關操作,那么就需要我們把struct轉化成map,下面是是我嘗…

Hello, Raspberry Pi.

1.概要最近在研究自動升級開源項目的時候偶然想到IoT領域的自動升級,突然想起2016年買的樹莓派(Raspberry Pi)。那就分享一下如何入門樹莓派的教程,我當時一共買了兩塊一款是Raspberry Pi 3b(2016年價格259元去年以抽獎…

supersu_SuperSU已從Play商店中刪除,這是替代使用的方法

supersuSuperSU has long been a staple in the rooted Android community. For years, the process for getting a rooted handset was: unlock the bootloader, flash a custom recovery, install SuperSU. That’s just how it was. 長期以來,SuperSU一直是扎根于…

Oracle 11g DRCP連接方式——基本原理

學習Oracle是一個復雜、繁瑣的過程。在浩如煙海的Oracle官方資料、新特性、MOS資料和各種Internal知識面前,我們總是覺得力不從心、不知所措。但是,這往往也就是我們不斷堅持、積累和追尋的樂趣。  在Oracle 11g中,提出了突破傳統專用/共享…

django項目開發1:搭建虛擬環境

需求 不同項目依賴不同模塊版本,不能共用一套環境,虛擬環境。在系統的python環境安裝 安裝 pip3 install virtualenv pip3 install virtualenvwrapper-win環境變量 # 配置環境變量: # 控制面板 > 系統和安全 > 系統 > 高級系統設…

IPC之——消息隊列

消息隊列作用&#xff1a; 可以用于兩個沒有聯系的進程間通信&#xff0c;創建一個消息隊列類似于打開了一個文件&#xff0c;兩個不同的進程都可以進行操作 消息隊列之函數介紹&#xff1a; 頭文件&#xff1a;<sys/type.h> <sys/ipc.h> <sys/msg.h> 1.msgg…

【招聘(上海)】To B數字化營銷公司-市場易,直招.NET后端研發工程師

【招聘背景】公司&#xff1a;上海光潾網絡科技有限公司成立于2016年&#xff0c;系上海市高新技術企業&#xff0c;2021年獲數千萬A輪融資項目&#xff1a;公司自主研發營銷自動化SaaS平臺- 市場易 (Custouch) &#xff0c;通過數字手段為B2B營銷賦能&#xff0c;現服務100多家…

div 包裹_如何查看到達之前收到的包裹和郵件

div 包裹The United States Postal Service, UPS, and FedEx all offer online dashboards where you can see exactly what packages (and letters, in the case of the US Postal Service) are scheduled to arrive at your address. They’ll even email and send you text …

py文件的運行

安裝過程及配置 安裝過程準備&#xff1a; 下載好Python的安裝程序后&#xff0c;開始安裝&#xff0c;在進入安裝界面后一定確保勾選將Python加入到系統環境變量的路徑里。如圖所示&#xff1a; 2如果沒有選取&#xff0c;那么按照下面的步驟進行操作。在桌面上用鼠標右鍵點擊…

加州大學信息科學院長:數據科學課程不只是工程師才修的

一般在考慮圍繞數據科學的基礎教育時&#xff0c;傳統上的重點仍停留在計算和工程等硬性技能上。不過&#xff0c;在周四于紐約市召開的GigaOm結構數據&#xff08;Structure Data&#xff09;會議上&#xff0c;美國加州大學伯克利分校信息科學院長AnnaLee Saxenian教授表示&a…

查看安裝軟件/Select-object/Where-Object xxx -like

查看已安裝軟件 1.通過注冊列表查看 $Path(HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*,HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*,HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*,HKCU:\SOFTWARE\WOW6432…

網絡編程基礎(一)

一.楔子 你現在已經學會了寫python代碼&#xff0c;假如你寫了兩個python文件a.py和b.py&#xff0c;分別去運行&#xff0c;你就會發現&#xff0c;這兩個python的文件分別運行的很好。但是如果這兩個程序之間想要傳遞一個數據&#xff0c;你要怎么做呢&#xff1f; 這個問題以…

dotnet-exec 讓 C# 程序更簡單

dotnet-exec 讓 C# 程序更簡單Introdotnet-exec是一個可以執行 C# 程序而不需要項目文件的命令行工具&#xff0c;并且你可以指定自定義的入口方法不僅僅是Main方法在 python/NodeJs 里&#xff0c;可以使用python xx.py/node xx.js來運行代碼&#xff0c;在 C# 中一般是需要項…

office數據集dslr_如何將照片從DSLR無線傳輸到智能手機

office數據集dslrYou’ve got a great digital camera. You’ve got all your social media apps on your phone. Wouldn’t it be nice if you could snap a beautiful shot with your DSLR and shuttle it right over to your phone to throw up on Facebook or Instagram? …

文件管理、命令別名和glob

一、復制命令:cp src dest1.如果scr是文件a.如果dest不存在&#xff0c;則新建dest并將src的內容填充到dest里b.如果dest存在&#xff0c;則會用src里的內容覆蓋dest里的內容&#xff0c;即覆蓋dest2.如果src是目錄a.如果dest不存在&#xff0c;則新建dest,然后把src下的內容復…

大數據匯聚全球精英

投資10億美元&#xff0c;選址貴安新區&#xff0c;建設iCloud服務的中國主數據中心。7月12日蘋果公司的這一舉動再次將全球目光聚集在貴州。 “貴州有令人矚目的增長&#xff0c;是中國新數據中心領域最具發展潛力的地點之一。”蘋果公司環境、政策和社會事務副總裁麗薩杰克遜…

django版本區別/與版本匹配

一、區別 路由層 1.django 1.x路由層使用url方法 django 2.x和3.x版本使用path方法 url() 第一個參數支持正則 path()第一個參數是不支持正則的 可以使用 re_path替代url() from django.urls import re_path # django2.0中的re_path #不建議導入url,不能區分版本 #from djang…