Manjaro搭建無密訪問samba服務器


為了方便Linux在Windows平台下開發,搭建Manjaro無密訪問samba服務器

后面加了Windows下搭建samba方法

安裝smb服務器

我用的是Manjaro gnome 18,需要安裝下面幾個軟件

sudo su 
pacman -S samba nautilus-share manjaro-settings-samba

配置/etc/samba/smb.conf參數

1) 安裝上面軟件之后,開始配置參數,先備份smb.conf
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
2) 然后新建一個,寫入如下參數 vim /etc/samba/smb.conf,這里感謝Conanx給我的參考!
[global]
workgroup = WORKGROUP       
#所要加入的工作組或者域
netbios name = Manjaro      
#用於在 Windows 網上鄰居上顯示的主機名
security = user             
#定義安全級別
map to guest = bad user     
#將所有samba系統主機所不能正確識別的用戶都映射成guest用戶
dns proxy = no              
#是否開啟dns代理服務

[misfit]                    
#共享顯示的目錄名
path = /home/misfit/code    
#實際共享路徑
browsable = yes             
#共享的目錄是否讓所有人可見
writable = yes              
#是否可寫
guest ok = yes              
#是否允許匿名(guest)訪問,等同於public
create mask = 0777          
#客戶端上傳文件的默認權限
directory mask = 0777       
#客戶端創建目錄的默認權限
#注意共享文件在系統本地的權限不能低於以上設置的共享權限。

修改好了輸入testparm檢查smb.conf是否有語法錯誤,需要其他配置這里是:配置參數詳解

3) 配置權限和密碼工作
##將系統用戶加入到samba用戶,並設置密碼,這里我們按兩次回車,設置成無密碼
smbpasswd -a  misfit  #這里misfit是上面設置的 #共享顯示的目錄名,也就是自己系統用戶名

##查看所有Samba用戶
pdbedit -L     

##查看對應IP上的samba服務器
smbclient -L //IP   #例如查看本機 smbclient -L 127.0.0.1

##這一段已經失效----2019.4.10更新
##將 path 中目錄的所有者改為nobody,否則,任何人都沒權限操作這個目錄。另外用如下命令設置:
##chown nobody:nobody /home/misfit/code  -R

##將 path 中目錄的權限設置為777
chmod 777 /home/misfit/code -R
chmod 777 /home/misfit/                 #這個不給權限會拒絕訪問

到這里配置基本完成了,跳到下一步直接啟動samba服務器

注意:不要把自己的 /home/misfit 系統目錄修改成nobody權限了,會導致開機無法登錄系統
如果導致進不小心修改了,登不進界面,在開機界面按ctrl+alt+F2進入tty2控制台,修改輸入下面命令改回權限
chown misfit:misfit /home/misfit -R 這里misfit是linux的用戶名。

其他知識補充:目前samba有三種后台:smbpasswd、tdbsam和ldapsam。sam應該是security account manager(安全賬戶管理)的簡寫。
1.smbpasswd:該方式是使用smb自己的工具smbpasswd來給系統用戶(真實
用戶或者虛擬用戶)設置一個Samba密碼,客戶端就用這個密碼來訪問Samba的資源。smbpasswd文件默認在/etc/samba目錄下,不過有時候要手工建立該文件。
2.tdbsam:該方式則是使用一個數據庫文件來建立用戶數據庫。數據庫文件叫passdb.tdb,默認在/etc/samba目錄下。passdb.tdb用戶數據庫可以使用smbpasswd –a來建立Samba用戶,不過要建立的Samba用戶必須先是系統用戶。我們也可以使用pdbedit命令來建立Samba賬戶。pdbedit命令的參數很多,我們列出幾個主要的。
pdbedit –a username:新建Samba賬戶。
pdbedit –x username:刪除Samba賬戶。
pdbedit –L:列出Samba用戶列表,讀取passdb.tdb數據庫文件。
pdbedit –Lv:列出Samba用戶列表的詳細信息。
pdbedit –c “[D]” –u username:暫停該Samba用戶的賬號。
pdbedit –c “[]” –u username:恢復該Samba用戶的賬號。
3.ldapsam:該方式則是基於LDAP的賬戶管理方式來驗證用戶。首先要建立LDAP服務,然后設置“passdb backend = ldapsam:ldap://LDAP Server”

然后啟動服務

systemctl start smb     #啟動服務

#然后設置為開機自啟
systemctl enable smb    #開機自啟

#其他命令
systemctl status smb    #查詢狀態
systemctl restart smb   #重新啟動

Manjaro防火牆默認關閉的,並且沒有安裝selinux,安裝了的需要關閉
systemctl stop iptables #關閉防火牆
setenforce 0 #關閉selinux
關閉selinux開機啟動
sudo vim /etc/selinux/config
SELINUX=enforcing改為SELINUX=disabled

最后掛載到windows上

打開資源管理器>>右擊網絡>>映射網絡驅動,添加\Linux IP\共享目錄,完成
 
 
 

Windows搭建服務器

1) 關閉windows防火牆
控制面板>>系統安裝>>windows防火牆>>打開關閉防火牆,家庭、共用都關掉
2) 解禁Guest賬戶
資源管理右擊計算機,管理>>本地用戶和組>>用戶,右擊Guest選擇屬性,將賬戶已禁用的勾去掉。
3) 在本地策略上修改用戶權限分配和安全選項

  • 輸入“secpol.msc”命令打開本地安全策略向導:
  • 本地策略>>用戶權限分配>>拒絕從網絡訪問這台計算機,雙擊打開,將Guest賬戶刪除。
  • 本地策略>>安全選項>>網絡訪問:本地賬戶的共享和安全模型,雙擊打開,設置為僅來賓模式。

4)將Windows的文件夾設置成無密共享
右鍵需要共享的文件夾,屬性>>共享(標簽)>>共享(按鈕),添加everyone用戶,設置權限級別為 讀\寫 ,單擊共享。
5)最后掛載到Manjaro Linux

  • 查看共享目錄smbclient -L //[PC的IP]
  • 掛載共享目錄到Linux,manjaro 默認安裝了cifs:
    mount -t cifs //[PC的IP]/[共享目錄名] /[掛載目錄名]

6)開機自動掛載samba (貌似無效)
vim /etc/fstab添加:

//[PC的IP]/[共享目錄名]   /[掛載目錄名]    cifs    defaults,guest  0 0 

關於服務器的選擇:
我目前偏向於在虛擬機Linux中將smb和nfs都搭建,Linux和windows之間共享用smb,Linux掛載到開發版用nfs。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM