1. 程式人生 > >Linux曲徑通幽:檔案共享(FTP、Samba、NFS、SCP、RSYNC)

Linux曲徑通幽:檔案共享(FTP、Samba、NFS、SCP、RSYNC)

FTP設定


客戶端

開機自動掛載

SCP

Samba


Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟體,由伺服器及客戶端程式構成。SMB(Server Messages Block,資訊服務塊)是一種在區域網上共享檔案和印表機的一種通訊協議,它為區域網內的不同計算機之間提供檔案及印表機等資源的共享服務。SMB協議是客戶機/伺服器型協議,客戶機通過該協議可以訪問伺服器上的共享檔案系統、印表機及其他資源。通過設定“NetBIOS over TCP/IP”使得Samba不但能與區域網絡主機分享資源,還能與全世界的電腦分享資源。

1、  下載及安裝Samba

        推薦用yum來安裝,這樣它可以自己解決包的依賴關係,省時、省事又方便。一條命令搞定:

        yum -y install samba

2、  配置Samba

        首先,我強烈的建議大家在修改系統原有任何檔案的時候一定要養成“先備份,後修改”的好習慣,相信我,這個習慣會為儂節約很多不必要浪費的時間。接下來我要做的是將/home/目錄下的使用者“koorey”的主目錄給挖出來,供我在windows下訪問。步驟如下:

       1). 備份Samba的配置檔案:cp  /etc/samba/smb.conf  /etc/samba/smb.conf.bak

       2). 網上很多教程說針對/etc/samba/smb.conf檔案要在[global]欄位中加入下配置項:

dos charset = GB2312 ←將Windows 客戶端的文字編碼設定為簡體中文 GB2312

                  unix charset =GB2312 ←指定Samba所在的CentOS服務端新建檔案或目錄時的編碼為 GB2312

                 display charset= GB2312 ←指定使用SWAT(一種通過瀏覽器控制Samba的工具)時頁面的預設文字編碼

                 directory mask =0777 ←指定新建目錄的屬性(以下4行)

                 force directorymode = 0777

                 directorysecurity mask = 0777

                 force directorysecurity mode = 0777

                 create mask =0777 ←指定新建檔案的屬性(以下4行)

                 force createmode = 0777

                 security mask =0777

                 force securitymode = 0777

        宣告:我沒有加這些配置,而且在我在共享出來的目錄裡新增,修改刪除檔案都沒任何問題,還沒有亂碼現象。

        我在/etc/samba/smb.conf檔案的末尾之新增如下欄位:

        [koorey]

                comment = koorey

                path = /home/koorey

                writable = yes

        3). Linux中/etc/passwd裡的使用者和Samba裡的使用者幾乎沒啥關係,硬說有的話,那就是:Samba的所有使用者都必須是系統裡已存在的使用者。我們要授權系統使用者訪問Samba的話,通過命令:

        smbpasswd  -a   koorey  #新增使用者koorey到Samba使用者資料庫中

        這條命令輸入完後,會提示為新建的使用者koorey設定訪問密碼。最後再執行一下service smb restart命令就OK了。至此,Samba伺服器就架設好了。不信?為啥?因為後面還有章節,哈哈,說的沒錯。理論上說確實已經架設好了,可千萬不要忽略了Linux的安全機制的存在:iptables和selinux。其中本人就吃了selinux不少苦頭。因為只弄了iptables,卻忘記了selinux這個牛叉叉的傢伙。關於iptables本人會在後面的部落格從頭到腳,從裡到外,循序漸進的以此和大家交待它的來龍去脈。當然,如果你感興趣的話。

3、  在對待iptables的問題上:

        普通青年:直接在命令列敲…

            service  iptables stop

        文藝青年:依次在命令列敲…

            iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT

            iptables -I RH-Firewall-1-INPUT 5 -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

            iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 137 -j ACCEPT

            iptables -I RH-Firewall-1-INPUT 5 -p udp -m udp --dport 138-j ACCEPT

            iptables-save

            service iptables  restart

4、  同樣,在對在selinux的問題上:(這丫的把我坑慘了呀)

        普通青年:直接在命令列敲…

            setenforce 0

            vi /etc/selinux/config

        將SELINUX=enforcing改為SELINUX=disabled為開機重啟後不再執行setenfore節約光陰。

       文藝青年:依次在命令列敲…

            setsebool -Psamba_enable_home_dirs on

            setsebool -Psamba_export_all_rw on

       完事兒之後再:getsebool  -a  | grep  samba一把,你懂得…

5、最後在Windows系統裡,訪問結果如下:

6、打完收工。

      不管你是普通青年還是文藝青年,如果你是一步一步照著做下來的,結果最後Samba還不通,請留言告訴我。