為了友善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給我的參考!
vim /etc/samba/smb.conf
[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權限了,會導緻開機無法登入系統
如果導緻進不小心修改了,登不進界面,在開機界面按
進入tty2控制台,修改輸入下面指令改回權限
ctrl+alt+F2
這裡misfit是linux的使用者名。
chown misfit:misfit /home/misfit -R
其他知識補充:目前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 #關閉防火牆
關閉selinux開機啟動
setenforce 0 #關閉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