考慮到window和linux虛擬機之間互傳文件較為麻煩,遂打算在虛擬機中安裝Samba服務器,以此實現共享文件給window使用。然而安裝配置過程曲折,遂作記錄如下:
一、samba服務器的安裝
正常的安裝流程如下:
1、安裝samba:yum install samba
檢查samba安裝狀態:rpm qa | grep samba(確保samba服務器已經正常安裝)
2、配置samba服務:vim /etc/samba/smb.conf
testparm 測試samba配置文件是否有語法錯誤
3、添加samba新用戶:
smbpasswd -a user_name 添加samba新用戶(前提是該用戶已在Linux系統中存在,否則需要首先添加該用戶到系統中)
smbpasswd -x user_name 刪除samba用戶
pdbedit -L 列出所有samba用戶
4、重啟samba服務:service smb restart
安裝過程遇到的問題:
依賴包錯誤雲雲
網上查了好久,始終未找到合適的答案(找依賴包這個思路的方向偏了,因為yum命令本身可以自動解決依賴包的問題)。
之后,我使用yum update命令,注意到了有這樣的問題,
然后,意識到了問題的所在--可能是由於之前安裝samba過程
殘留了一些過程文件造成,了重新安裝時出現了沖突?
Anyway,由於命令yum-complete-transaction在yum-utils包中,首先安裝yum-utils,使用命令
yum install yum-utils;
然后執行命令yum-complete-transaction,成功安裝了samba,問題得到了解決。
總結:遇到問題時,首先耐心找出所有可能引起問題的地方,並考慮問題的源頭在哪。
二、samba服務器與主機的通信
遇到的問題,
通過win7主機運行窗口(按鍵:win+R)訪問samba的共享端口,無法連接到samba:
為了解決這個問題,幾乎找遍了網上的資源,遺憾的是並沒有針對我所遇到問題的解決方案。不過這個帖子有所提及
https://www.iyunv.com/thread-70422-1-1.html。虛擬機的聯網配置一直是NAT模式,后改用橋接方式,確實連接成功了。
問題之所以解決,似乎也與我將最終目的分解為不同的步驟有關。最終效果是想實現win7訪問虛擬機中CentOS的samba,但首先可以在虛擬機中本地進行smbclient客戶端登錄,下面是成功的現象
smbclient -U username -L \\ipaddr
Enter SAMBA\user's password:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
Work Disk GloryD's share work dir
IPC$ IPC IPC Service (Samba 4.10.4)
gloryd Disk Home Directories
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
Work Disk GloryD's share work dir
IPC$ IPC IPC Service (Samba 4.10.4)
gloryd Disk Home Directories
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
【
可能的失敗返回結果:
可能的失敗返回結果:
session setup failed: NT_STATUS_LOGON_FAILURE
確認當前用戶是否已添加系統用戶及samba用戶:
cat /etc/passwd | grep user
pdbedit -L | grep user
指定用戶可能非系統用戶,useradd user添加該用戶並指定登錄密碼
指定用戶可能非Samba用戶,smbpasswd -a user添加該用戶並指定登錄密碼
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
共享目錄有誤,可能是目錄不存在或者權限不對(http://www.cnitblog.com/201/archive/2010/09/26/69192.html
】
如果本地smbclient用戶登錄成功,便可以進一步實現win7對samba的訪問。
然而,即便是在虛擬機中操作仍然不成功。不過好處是,錯誤有提示,如下:
session setup failed: SUCCESS - 0
由此,通過這個提示再進行網絡資源搜索,最終找到了可參考的方案
https://www.iyunv.com/thread-70422-1-1.html。
samba配置文件 /etc/samba/smb.conf 新增內容如下(簡單配置,可以滿足使用要求):
[work_dzh] ;共享目錄虛擬名
comment = DZH share dircetory ;共享目錄描述
path = /home/work ;真實共享目錄
browseable = yes ;目錄可瀏覽
writable = yes ;目錄內可寫
valid users = dzh ;登錄用戶為:dzh
此外,為了方便訪問,可將虛擬機中的共享文件 work_dzh 配置為網絡文件,
不過這樣一來,電腦開機啟動過程異常緩慢(這是因為電腦啟動過程需要加載驅動器Z,不過由於虛擬機未開啟,故驅動器Z一直找不到,耗費了大量時間)。
【20200602 window10系統相關問題
虛擬機本地smbclient訪問共享目錄成功,但windows仍訪問失敗,嘗試了如下方法並不ok
“我的電腦”--管理--服務和應用程序--服務 打開TCP/IP NetBIOSHelper --無作用
控制面板-程序和功能-啟用或關閉 Windows 功能,勾選 SMB 1.0/CIFS 文件共享支持中的 SMB 1.0/CIFS 客戶端 & 服務器,重啟 --無作用
可能與windows10家庭版有關系?(
https://blog.csdn.net/snaking616/article/details/104282660 --嘗試生成策略組gpedit.msc失敗)
20200603
找到原因了...
目前使用的CentOS7系統,防火牆並非
iptables而是
firewalld
(尋找替代方案cuteFTP時,發現仍然連接不上虛機的ftp服務,進而發現了這個帖子
https://bbs.csdn.net/topics/391927110)
[root@centos7 gloryd]# systemctl stop iptables
Failed to stop iptables.service: Unit iptables.service not loaded.
[root@centos7 gloryd]# systemctl status iptables
Unit iptables.service could not be found.
(以上誤以為已經關掉防火牆了,其實明顯就提示問題了)
Failed to stop iptables.service: Unit iptables.service not loaded.
[root@centos7 gloryd]# systemctl status iptables
Unit iptables.service could not be found.
(以上誤以為已經關掉防火牆了,其實明顯就提示問題了)
[root@centos7 gloryd]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since 四 2020-06-04 00:13:43 CST; 2min 43s ago
Docs: man:firewalld(1)
...
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since 四 2020-06-04 00:13:43 CST; 2min 43s ago
Docs: man:firewalld(1)
...
】
其他相關配置文章:
