文章目錄
- 一、安裝所需要的軟件
- 二、配置自動掛載
- 三、配置 Samba 服務器
- 四、配置 Samba 訪問用戶和密碼(可選)
- 新建 Samba 專門的用戶
- 添加無密碼的 Samba 賬戶
- 使用root賬戶
- 五、解決 Windows 無法匿名訪問Samba
- 方案一 配置無密碼的Samba賬戶并啟用匿名訪問
- 方案二 在本地組策略組編輯器中啟用不安全來賓登錄
一、安裝所需要的軟件
首先 OpenWrt
的官方文檔出詳細介紹了在 OpenWrt
搭建 Samba
服務器的方法:https://openwrt.org/docs/guide-user/services/nas/cifs.server
首先,在編譯的時候,需要給 內核
勾選上對 usb
和 文件系統
的相關的支持。
usb 的模塊有:
kmod-usb3 kmod-usb-storage-uas usbutils block-mount mount-utils
各個模塊所在的位置如下:
Kernel modules > USB Support > kmod-usb3
Kernel modules > USB Support > kmod-usb-storage-uas
Utilities > usbutils
Base system > block-mount
Utilities > mount-utils
前兩個是最基礎的 USB
支持,后三個是用于自動掛載 USB設備
的工具。
此處推薦安裝
Utilities
>Disc
>fdisk
工具,可用于查看和管理USB設備
的分區信息。
文件系統的模塊有:
kmod-fs-ext4 kmod-fs-exfat kmod-fs-ntfs3
其都是在 Kernel modules > Filesystems
下的。其中,
kmod-fs-ext4
:EXT4
文件系統支持
kmod-fs-exfat
:exFAT
和 fat32
文件系統支持
kmod-fs-ntfs3
:NTFS
文件系統支持( Windows
默認的文件系統)。也可以使用 Utilities
> Filesystem
> ntfs-3g
啟用 NTFS
文件系統支持
如果有其它文件系統格式,則勾選編譯安裝其他相關的驅動。
最后,勾選安裝 luci-app-samba4
的 Luci
應用,運行 samba4
。
二、配置自動掛載
由于在 Linux
中每個磁盤和分區都需要通過掛載的方式,才能正確的識別,因此我們接入一個 u盤
之后就需要配置一下,在系統中分配路徑。
為了方便在
OpenWrt
中掛載,建議在電腦上提前對硬盤進行分區。
由于我們在前面已經安裝了 block-mount
工具,那么其可以為我們自動識別文件系統的格式和路徑,然后自動為我們把硬盤掛載到 /mnt 目錄。此工具在后臺管理中位置為 系統
> 掛載點
:
當我們將 USB設備
接入之后,點擊 掛載點
頁面中 生成配置
,在點擊 掛載已連接的設備
,此時就會自動將系統支持的文件系統掛載到了 /mnt
目錄下了。注意:生成的配置需要點擊保存之后才能永久生效
此時就可以在 掛載點
中看到接入的 USB設備
了。可點擊編輯
,實現修改它的掛載參數。
如果自動掛載找不到自己的硬盤或者分區,需要檢查在第一步是否在內核中安裝了相關文件系統的支持。
三、配置 Samba 服務器
在 Luci 管理頁面
中 打開 服務
> 網絡共享
界面進行配置Samba
服務器。
對于常規設置來說,只需要按需啟用即可,不會影響整體功能。
隨后在 共享目錄
添加硬盤的掛載路徑,進行配置共享硬盤。
如果計劃無需登錄即可使用,則可以勾選 允許匿名用戶
,否則對于設備訪問來說就需要輸入用戶名和密碼。
四、配置 Samba 訪問用戶和密碼(可選)
這一步是可選的,對于家庭 Samba
來說,如果能確保數據安全,則可以直接勾選 允許匿名用戶
,無需配置用戶和密碼。但是,在某些設備上,處于安全性考慮,是不允許 匿名訪問
模式,例如Windows,默認不啟用 匿名訪問
,但可在策略組修改這一行為(后文介紹)。
新建 Samba 專門的用戶
samba
使用的用戶名即為系統中的用戶名,但為了保證系統的安全,samba
中使用的密碼和管理員密碼就不相同的,需要分別獨立設置。
首先可以使用 useradd
命令添加一個 samba
的專門用戶,如果沒有 useradd
命令,則需要先安裝 shadow-useradd
應用。為了保證數據安全,此用戶無目錄和禁止登陸 shell
。
# 創建用戶(無家目錄,禁止登錄)
useradd -M -s /bin/false smbuser
隨后可以使用 smbpasswd
命令設置Samba 密碼,隨后輸入兩次相同的密碼即可
# 設置 Samba 密碼
smbpasswd -a smbuser
至此就完成了添加 samba 專門的賬戶,在客戶端登錄時,使用此用戶名和密碼即可。
添加無密碼的 Samba 賬戶
Samba
支持無密碼的用戶,只需要在設置密碼的時候,不輸入任何字符,連續按兩次回車即可。
同時,需要確保在 samba 配置的模板
中有 null passwords = yes
的配置項
使用root賬戶
處于安全考慮,Samba
默認不會使用 root
用戶,如果需要啟用,則需要在模板代碼中,invalid users
配置項中不包含root
,或直接注釋掉此配置項。
五、解決 Windows 無法匿名訪問Samba
出于安全考慮,Windows
默認屏蔽了 匿名訪問
的能力,此時會提示:你不能訪問此共享文件夾 因為你組織的安全策略阻正止未經身份驗證的來賓訪。 這些策略可幫助保護你的電腦免受網絡上不安全設備或惡意設備的威脅。這里可能會出現0x80004005的錯誤
這里給出兩個解決方案。
方案一 配置無密碼的Samba賬戶并啟用匿名訪問
為了避免 Windows
無法匿名訪問,我們可以專門為 Samba
建立一個無密碼的賬戶,在 Windows
登錄時使用此用戶名進行登錄即可。同時在 Samba
配置時也 啟用匿名訪問
,其他設備則可以直接匿名訪問,而無需輸入用戶名和密碼。
方案二 在本地組策略組編輯器中啟用不安全來賓登錄
對于 專業版 或 企業版 的 Windows
來說,其支持管理組策略(Win
+ R
中輸入 gpedit.msc
打開 本地組策略組編輯器
),因此可以 啟用不安全來賓登錄
其位置在 計算機配置
> 管理模板
> 網絡
> Lanman工作站
> 啟用不安全來賓登錄
,將其修改為 已啟用
即可。
但是此方法有明顯的缺陷,就是對于家庭版的 Windows
來說不能直接修改策略組,同時如果有多臺設備,就需要配置多次,因此建議使用方案一來解決 Windows
不能 匿名訪問
的問題