背景:
專案需求linux的一個目錄,需要在兩臺windows目錄上面進行同時共享。
使用mount時發現,通過mount將同一個linux上面的目錄掛載在兩臺windows機器上時,會出現檔案隱藏的現場。
解決:
使用samba實現linux和windows的檔案共享
1.首先檢查os是否安裝好了samba。
如圖顯示機器原來安裝好了Samba的客戶端,沒有服務端。
yum進行安裝服務端,方法如下:yum install samba* y
可能出現衝突:
解決辦法如下:yum install samba* y --skip-broken
安裝完成!
2.在本地建立一個samba共享的目錄資料夾(我使用的/mnt/patches)
3.關閉samba伺服器
由上面的檢視結果可以看出此時samba服務沒有開啟,處於關閉狀態;
如果沒有關閉,使用service smb stop 命令關閉samba服務
4.修改/etc/samba/smb.cnf配置檔案
(1)把/etc/samba/smb.cnf配置檔案裡的 security = user 修改為 security = share ;
share即表示安全性為共享模式
(2)在/etc/samba/smb.cnf配置檔案結尾加上如下配置內容
[ShareFolder]
comment = Share
path = /mnt/patches
public = yes
browseable = yes
writable = yes
;printable = no
配置說明:
[ShareFolder] #共享目錄的名字
comment = Thisismysambaserver! #共享目錄的說明,相當於註釋
path = /home/ShareFolder #共享目錄的路徑
public = yes #指定目錄是否可以guest訪問
browseable = yes #指定目錄是否可以容許瀏覽
writable = yes #指定目錄是否可以寫(yes為可寫,no為只可讀)
;printable = no #指定目錄是否可以列印(yes為可列印,no為不可以列印)
#配置的內容前面加;相當於註釋,這句不起作用
5.開啟samba伺服器
service smb start
6.共享子目錄無法訪問?解決如下
將security = share 修改為 security = user;
valid users=root
設定root使用者的smb服務訪問密碼,輸入命令: smbpasswd –a root,輸入密碼
啟動SMB服務
smb.conf檔案詳細配置,限定使用者進行訪問
#=======================GlobalSettings=====================================
[global]
workgroup=user 將linux加入的工作組名
serverstring=Samba 這是伺服器描述資訊,方便標誌資源。可以隨便輸入。
encryptpasswords=yes 表示是否對使用者的密碼進行加密,這裡選擇加密,安全!
public=yes 定義一個共享是否對公共訪問開放。當設定為yes時,在系統上沒有帳戶使用者將基於所定義的客戶帳戶的屬性來接收訪問。
smbpasswdfile=/etc/samba/smbpasswd 這是賬號密碼的存放檔案
netbiosname=mm ssamba在外部訪問該samba伺服器時,顯示的資訊。
#---------------------------LoggingOptions-----------------------------
#logssplitpermachine
logfile=/var/log/samba/log.%m log檔案的存放位置。
#max50KBperlogfile,thenrotate
maxlogsize=0 log檔案的大小限制,設定為0表示不做限制。
#-----------------------StandaloneServerOptions------------------------
security=user 共享的安全級別,samba有四種安全等級:
share: 使用者不需要賬戶及密碼即可登入samba伺服器
user: 由提供服務的samba伺服器負責檢查賬戶及密碼(預設)
server: 檢查賬戶及密碼的工作由另一臺windows或samba伺服器負責
domain: 指定windows域控制伺服器來驗證使用者的賬戶及密碼)
passdbbackend=tdbsam
以上即為通用一般配置。
加入我們需要共享的目錄為/mnt/patches
需要新增如下程式碼:
[rose]
comment=Thisismysambaserver!
path=/mnt/patches
validusers=testuser
public=yes
writable=yes
新增可以訪問我們剛才設定共享目錄的使用者:testuser
1)建一個系統使用者
- [root@localhostsamba]#user add testuser(建一個名叫testuser的使用者)
- [root@localhostsamba]#passwd testuser(給testuser使用者新增密碼)
- Changing password for user samba.
- New password:(密碼要六位以上,不顯示在螢幕上)
- BADPASSWORD:itdoesnotcontainenoughDIFFERENTcharacters
- Retypenewpassword:(確認密碼)
- passwd:allauthenticationtokensupdatedsuccessfully
2)建立、更新/etv/samba/smbpasswd檔案
- [root@localhostsamba]#cat/etc/passwd|mksmbpasswd.sh>/etc/samba/smbpasswd
3)然後建立samba帳戶
- [root@localhostsamba]#smbpasswd-atestuser
- NewSMBpassword:
- RetypenewSMBpassword:
- Addedusertestuser.
重新啟動smb服務
- [root@ciscosamba]#servicesmbrestart
- ShuttingdownSMBservices:[OK]
- StartingSMBservices:[OK]
- [root@ciscosamba]#servicenmbrestart
- ShuttingdownNMBservices:[OK]
- StartingNMBservices:[OK]