CentOS上如何使用Samba共享文件夾
CentOS上如何使用Samba共享文件夾
常常使用Windows的人可能會(huì)發(fā)現(xiàn),Windows計(jì)算機(jī)之前共享資料非常方便,那么大家知道CentOS上如何使用Samba共享文件夾?下文學(xué)習(xí)啦小編就分享了CentOS上使用Samba共享文件夾的方法,希望對(duì)大家有所幫助。
CentOS上使用Samba共享文件夾方法
步驟1:在Fedora和CentOS上安裝Samba
首先,安裝Samba以及進(jìn)行一些基本的配置。
檢驗(yàn)Samba是否已經(jīng)安裝在您的系統(tǒng)中:
$ rpm -q samba samba-common samba-client
如果上面的命令沒(méi)有任何輸出,這意味著Samba并未安裝。這時(shí),應(yīng)使用下面的命令來(lái)安裝Samba。
$ sudo yum install samba samba-common samba-client
接下來(lái),創(chuàng)建一個(gè)用于在網(wǎng)絡(luò)中共享的本地文件夾。這個(gè)文件夾應(yīng)該以Samba共享的方式導(dǎo)出到遠(yuǎn)程的用戶。在這個(gè)指南中,我們會(huì)在頂層文件夾'/'中創(chuàng)建這個(gè)文件夾,因此,請(qǐng)確保您有相應(yīng)的權(quán)限。
$ sudo mkdir /shared
如果您想在您的home文件夾內(nèi)創(chuàng)建共享文件夾(例如,~/shared),您必須激活SELinux中Samba的home文件夾共享選項(xiàng),具體將在后面提到。
在創(chuàng)建/shared文件夾后,設(shè)置文件夾權(quán)限以保證其余用戶可以訪問(wèn)它。
$ sudo chmod o+rw /shared
如果您不想其他用戶對(duì)該文件夾擁有寫權(quán)限,您需要移除命令中的'w'選項(xiàng)。
$ sudo chmod o+r /shared
接下來(lái),創(chuàng)建一個(gè)空文件來(lái)測(cè)試。這個(gè)文件可以被用來(lái)驗(yàn)證Samba的共享已經(jīng)被掛載。
$ sudo touch /shared/file1
步驟2:為Samba配置SELinux
接下來(lái),我們需要再次配置SELinux。在Fedora和CentOS發(fā)行版中SELinux是默認(rèn)開啟的。SELinux僅在正確的安全配置下才允許Samba讀取和修改文件或文件夾。(例如,加上'sambasharet'屬性標(biāo)簽)。
下面的命令為文件的配置添加必要的標(biāo)簽:
$ sudo semanage fcontext -a -t samba_share_t "(/.*)?"
將替換為我們之前為Samba共享創(chuàng)建的本地文件夾(例如,/shared):
$ sudo semanage fcontext -a -t samba_share_t "/shared(/.*)?"
我們必須執(zhí)行restorecon命令來(lái)激活修改的標(biāo)簽,命令如下:
$ sudo restorecon -R -v /shared
為了通過(guò)Samba共享在我們home文件夾內(nèi)的文件夾,我們必須在SELinux中開啟共享home文件夾的選項(xiàng),該選項(xiàng)默認(rèn)被關(guān)閉。下面的命令能達(dá)到該效果。如果您并未共享您的home文件夾,那么您可以跳過(guò)該步驟。
$ sudo setsebool -P samba_enable_home_dirs 1
步驟3:為Samba配置防火墻
下面的命令用來(lái)打開防火墻中Samba共享所需的TCP/UDP端口。
如果您在使用firewalld(例如,在Fedora和CentOS7下),接下來(lái)的命令將會(huì)永久的修改Samba相關(guān)的防火墻規(guī)則。
$ sudo firewall-cmd --permanent --add-service=samba
如果您在防火墻中使用iptables(例如,CentOS6或者更早的版本),可以使用下面的命令來(lái)打開Samba必要的向外的端口。
$ sudo vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 445 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
然后重啟iptables服務(wù):
$ sudo service iptables restart
步驟4:更改Samba配置
后面的步驟用來(lái)配置Samba以將本地文件夾導(dǎo)出為Samba共享文件夾。
使用文件編輯器打開Samba配置文件,并將下面的行添加到文件的末尾。
$ sudo nano /etc/samba/smb.conf
[myshare]comment=my shared filespath=/sharedpublic=yeswriteable=yes
上面在括號(hào)內(nèi)的文本(例如,"myshare")是Samba共享的資源的名字,它被用來(lái)從遠(yuǎn)程主機(jī)存取Samba共享。
創(chuàng)建Samba用戶帳戶,這是掛載和導(dǎo)出Samba文件系統(tǒng)所必須的。我們可以使用smbpasswd工具來(lái)創(chuàng)建一個(gè)Samba用戶。注意,Samba用戶帳戶必須是已有的Linux用戶。如果您嘗試使用smbpasswd添加一個(gè)不存在的用戶,它會(huì)返回一個(gè)錯(cuò)誤的消息。
如果您不想使用任何已存在的Linux用戶作為Samba用戶,您可以在您的系統(tǒng)中創(chuàng)建一個(gè)新的用戶。為安全起見(jiàn),設(shè)置新用戶的登錄腳本為/sbin/nologin,并且不創(chuàng)建該用戶的home文件夾。
在這個(gè)例子中,我們創(chuàng)建了一個(gè)名叫"sambaguest"的用戶,如下:
$ sudo useradd -M -s /sbin/nologin sambaguest$ sudo passwd sambaguest
在創(chuàng)建一個(gè)新用戶后,使用smbpasswd命令添加Samba用戶。當(dāng)這個(gè)命令詢問(wèn)一個(gè)密碼時(shí),您可以鍵入一個(gè)與其用戶密碼不同的密碼。
$ sudo smbpasswd -a sambaguest
激活Samba服務(wù),并檢測(cè)Samba服務(wù)是否在運(yùn)行。
$ sudo systemctl enable smb.service $ sudo systemctl start smb.service $ sudo systemctl is-active smb
使用下面的命令來(lái)查看Samba中共享的文件夾列表。
$ smbclient -U sambaguest -L localhost
接下來(lái)是在Thunar文件管理器中訪問(wèn)Samba共享文件夾以及對(duì)file1進(jìn)行拷貝復(fù)制的截圖。注意,Samba的共享內(nèi)容可以通過(guò)在Thunar中通過(guò) smb:///myshare 這個(gè)地址來(lái)訪問(wèn)。
CentOS上如何使用Samba共享文件夾相關(guān)文章: