如何在 Linux 上安裝Samba
本文轉(zhuǎn)載自微信公眾號(hào)「Linux開(kāi)發(fā)那些事兒」,作者LinuxThings。轉(zhuǎn)載本文請(qǐng)聯(lián)系Linux開(kāi)發(fā)那些事兒公眾號(hào)。
Linux 開(kāi)發(fā),通常是在 Windows 上編碼,再把文件傳到 Linux 上進(jìn)行編譯,當(dāng)項(xiàng)目稍微有點(diǎn)兒規(guī)?;蛘叨鄠€(gè)人同時(shí)開(kāi)發(fā)時(shí),整個(gè)過(guò)程會(huì)變得非常的繁瑣了,如果有一種工具能實(shí)現(xiàn),編寫的代碼實(shí)時(shí)的同步到 Linux 上就好了。
samba 就能很好的解決這個(gè)問(wèn)題,它 是一個(gè)免費(fèi)的開(kāi)源軟件,由澳大利亞國(guó)立大學(xué)的一名學(xué)生開(kāi)發(fā)的,它允許在 Windows 和 Linux 系統(tǒng)之間簡(jiǎn)單輕松地共享文件。它能為選定的 Linux 目錄(包括所有子目錄)創(chuàng)建網(wǎng)絡(luò)共享,使得 Windows 用戶可以像訪問(wèn)普通 Windows 下的文件夾那樣來(lái)通過(guò)網(wǎng)絡(luò)訪問(wèn)這些 Linux 目錄,下面將詳細(xì)介紹 samba 服務(wù)器的安裝以及配置過(guò)程
安裝
使用下面的命令進(jìn)行安裝
- yum install samba samba-common samba-client
 
安裝完成之后, 執(zhí)行 smbd -V 命令,輸出 samba 服務(wù)器的版本信息,表示安裝成功
- [root@cghost21 ~]# smbd -V
 - Version 4.10.16
 
服務(wù)器配置
samba 服務(wù)器安裝完成之后,需要調(diào)整服務(wù)器的一些配置參數(shù),配置文件默認(rèn)位于 /etc/samba/smb.conf,在修改之前,可以先把原始的配置文件備份下
- [root@cghost21 ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
 
如果 smb.conf 的一行以 "#" 或 ";" 開(kāi)頭, 表示這一行是注釋
- 新建 Linux 用戶
 
添加新用戶,并設(shè)置密碼
- [root@cghost21 ~]# useradd smbusr1 -s /sbin/nologin
 - [root@cghost21 ~]# passwd smbusr1
 
注意:此處添加的用戶 smbusr1 只用作 創(chuàng)建 samba 登錄用戶的用途,因?yàn)?新建 samba 用戶的時(shí)候,需要保證相同名字的 Linux 用戶是存在并且設(shè)置了密碼,否則,新建 samba 用戶時(shí)會(huì)失敗
由于用戶 smbusr1 只是用于新建 samba 用戶,所以,新建時(shí)加上了 -s /sbin/nologin ,表示禁止此用戶登錄 Linux 系統(tǒng),這么做也是為了安全性考慮
- 新建 samba 用戶
 
執(zhí)行下面的命令,新建 samba 用戶 smbusr1 ,并設(shè)置密碼
- [root@cghost21 home]# smbpasswd -a smbusr1
 - New SMB password:
 - Retype new SMB password:
 - Added user smbusr1.
 
- 添加用戶共享目錄
 
為 samba 用戶 smbusr1 新建共享目錄,并賦予目錄權(quán)限
- [root@cghost21 home]# mkdir -p /samba/smbusr1
 - [root@cghost21 home]# chown -R smbusr1:smbusr1 /samba/smbusr1
 
- 配置 smb.conf
 
samba 服務(wù)器可配置項(xiàng)非常多,這里只介紹一些常用的配置項(xiàng),更多的配置項(xiàng)請(qǐng)參考 smb.conf.org
- #全局配置
 - [global]
 - # samba 工作組
 - workgroup = mygroup
 - # 服務(wù)器的說(shuō)明字符串,%V 表示服務(wù)器的版本號(hào)
 - server string=smb server %V
 - # 安全模式,user 表示需要身份驗(yàn)證
 - security = user
 - # samba 服務(wù)器名, 最長(zhǎng)15個(gè)字符
 - netbios name = myserver
 - #拒絕非法用戶登錄
 - map to guest = bad user
 - # samba 服務(wù)器日志
 - log file = /var/log/samba/smblog
 - # 服務(wù)器日志最大大小,單位:KB
 - # 服務(wù)器 會(huì)定期檢查大小,如果超過(guò),它將重命名文件,添加 .old 擴(kuò)展名
 - # 為 0 表示沒(méi)有限制
 - max log size = 10000
 - [smbusr1]
 - # smbusr1 用戶的共享的目錄
 - path=/samba/smbusr1
 - # 禁止匿名訪問(wèn)
 - public=no
 - # 是否可寫
 - writable=yes
 - # 目錄可寫的用戶組
 - write list=@smbusr1
 - # 訪問(wèn)目錄的用戶
 - valid users=smbusr1
 
修改完配置后,執(zhí)行 testparm 命令來(lái)檢查 smb.conf 的語(yǔ)法錯(cuò)誤
- [root@cghost21 home]# testparm
 - Load smb config files from /etc/samba/smb.conf
 - Loaded services file OK.
 - Server role: ROLE_STANDALONE
 - Press enter to see a dump of your service definitions
 
從上面的結(jié)果可以看出,smb.conf 沒(méi)有語(yǔ)法錯(cuò)誤
- 設(shè)置防火墻
 
samba 服務(wù)器啟動(dòng)會(huì)后,默認(rèn)會(huì)監(jiān)聽(tīng) 139 和 445 端口,可以通過(guò)下面的命令查看 samba 服務(wù)器偵聽(tīng)的端口
- [root@cghost21 home]# netstat -an4p | grep smbd | grep LISTEN
 - tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 23370/smbd
 - tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 23370/smbd
 
如果 samba 服務(wù)器所在的機(jī)器上開(kāi)啟了防火墻服務(wù),則需要開(kāi)放 139 和 445 端口,然后重啟防火墻服務(wù)
- [root@localhost ~]# firewall-cmd --zone=public --add-port=139/tcp --permanent
 - success
 - [root@localhost ~]# firewall-cmd --zone=public --add-port=445/tcp --permanent
 - success
 - [root@localhost ~]# systemctl restart firewalld
 
- 啟動(dòng) samba 服務(wù)器
 
經(jīng)過(guò)上面的步驟,最后啟動(dòng) samba 服務(wù)器
[root@cghost21 home]# systemctl start smb
客戶端配置
samba 客戶端配置起來(lái)也很簡(jiǎn)單,從 Linux 映射一個(gè)網(wǎng)絡(luò)驅(qū)動(dòng)器 到 Windows,外表看起來(lái) Windows 中多了一塊磁盤,只不過(guò)這塊磁盤是對(duì)應(yīng)網(wǎng)絡(luò)中 Linux 機(jī)器中的一個(gè)目錄,往這塊磁盤中寫入數(shù)據(jù),相當(dāng)于往 Linux 目錄中寫入數(shù)據(jù)
1、打開(kāi)我的電腦,點(diǎn)擊映射網(wǎng)絡(luò)驅(qū)動(dòng)器,然后輸入Linux上共享文件夾的地址,點(diǎn)擊完成,具體如下圖所示
2、輸入前面 samba 用戶名和密碼 ( 前面的步驟有添加過(guò) samba 用戶名和密碼 ),點(diǎn)擊確定,具體如下圖
3、samba 服務(wù)器驗(yàn)證用戶名和密碼成功之后,Windows 會(huì)進(jìn)入共享文件夾,它在 Windows 上看起來(lái)像一個(gè)硬盤的盤符一樣,請(qǐng)看下圖
至此,Windows 映射 Linux 機(jī)器上共享目錄就完成了,接下來(lái),就能以 Windows 操作的方式向網(wǎng)絡(luò)驅(qū)動(dòng)器中寫入數(shù)據(jù)了,所寫入的數(shù)據(jù)會(huì)實(shí)時(shí)同步到 Linux 機(jī)器的共享目錄 /samba/smbusr1 中
常見(jiàn)問(wèn)題
在配置 samba 服務(wù)器以及客戶端的過(guò)程中,或多或少會(huì)出現(xiàn)一些問(wèn)題,下面列出了幾種常見(jiàn)的錯(cuò)誤
- 錯(cuò)誤1
 
檢查下 smb.conf 中是否沒(méi)有配置對(duì)應(yīng)用戶的訪問(wèn)配置,或者是對(duì)應(yīng)的 samba 用戶不存在
- 錯(cuò)誤2
 
Windows 本地在同一個(gè)遠(yuǎn)程機(jī)器上已經(jīng)映射了網(wǎng)絡(luò)驅(qū)動(dòng)器,需要先斷開(kāi)之前的,才能映射新的
- 錯(cuò)誤3
 
共享目錄權(quán)限設(shè)置問(wèn)題,需修改共享目錄 /samba/smbusr2 的權(quán)限
小結(jié)
Linux 服務(wù)器通常沒(méi)有圖形界面,使用起來(lái)不如 Windows 簡(jiǎn)單直觀,samba 服務(wù)器實(shí)現(xiàn)了 將 Linux 命令行轉(zhuǎn)化成 Windows 圖形界面的操作,大大方便了 Linux 的開(kāi)發(fā),提高了開(kāi)發(fā)效率,搭配上版本管理工具 SVN ,samba 還非常適合個(gè)人學(xué)習(xí)以及小的開(kāi)發(fā)團(tuán)隊(duì)之間的協(xié)作





















 
 
 




 
 
 
 