天天看點

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。

-----END-----

轉載于:https://www.cnblogs.com/misfit/p/10603277.html