【Linux主機+架站+維護教學+遠端協助】專案 網路開展事業或在網路賺錢第一步: 【架設24小時賺錢網站主機】比網頁設計更優先! 你還在租用虛擬主機嗎? (租用不如自有主機!自己當家作主才是:王道!) 因租用會:限制空間大小、流量、PHP.ini修改、特定語法使用... 綁手綁腳,你還能有多出眾的作為? 替你架設Linux主機伺服器+影片教你維護 (還有遠端技術協助)讓你自己當家作主! 為協助學員快速架站(隨心所欲展開網路事業)總教頭特別規劃: 替你架設Linux主機專案 並教如何成為網管高手! 聰明的網站經營者都選擇架設Linux主機伺服器做為網站運作平台,因功能完整又強大,免費架站程式超多! 參加了本專案,您無須再自我摸索曠日廢時→快速打通任都二脈 還有配套『加盟專案』,你可以現學現做,自然的實現:『事少、錢多、離家近!』的成功境界。

FTP檔案傳輸服務(Linux主機伺服器架設技術)

Linux sqz 上的檔案傳輸服務預設是使用 vsftp 套件,裝妥時的預設狀態如下:

1. 使用 stand alone 方式提供服務
2. 任何合法使用者皆可以登入,並存取自己家目錄底下的檔案
3. 關閉 anonymous
4. 基於安全因素使用登入後,其家目錄就是根目錄 (chroot_local_user=YES ),因此無法在「第三地」建立「公用資料夾」後,以 link 的方式給各使用者存取。

安裝

* 安裝
root@dns:~# apt-get update
root@dns:~# apt-get install vsftpd

設定檢查

* 請檢查 /etc/vsftpd.conf 內的設定值是否與下面所列一致

#在IPv4監聽,若要改成 IPv6 監聽,一定要修改/etc/rc.local內的 ip6tables 以及給予 fix ipv6 address
listen=YES
#listen_ipv6=YES
#不允許anonymous公共下載區
anonymous_enable=NO
#列出資料夾內檔案詳細列表
dirmessage_enable=YES
#使用本機時間
use_localtime=YES
#使用記錄檔
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
#啟動主動式傳輸
connect_from_port_20=YES
#一些安全性設定
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
#啟用本機 User
local_enable=YES
chroot_local_user=YES
write_enable=YES
local_umask=022

建立公用資料夾

如果學校希望使用者在登入 FTP 服務後,只能存取「自己的家目錄」及「共用區」,而看不到別人的資料夾。筆者以 /home/ftp/pub 為公用區為例,其作法如下:

1. 公用資料夾建在在 /home/ftp/pub 底下
root@dns:~# mkdir /home/ftp/pub
2. 檔案權限開成 1777,使共用區內每個人皆可上傳修改自己的東西,但不得互改他人的
root@dns:~# chmod 1777 /home/ftp/pub 。
3. 接著,在每個 user 的家目錄下執行以下兩個動作(以 root 身份),便可以達成「共用區」的建立。
* 每個 User也須建立 pub 資料夾(若已建立,不必再做)
root@dns:~# mkdir /home/user/pub
* 把 /home/ftp/pub 掛載至 /home/user 底下(每次重開機,必須執行一次)
root@dns:~# mount –bind /home/ftp/pub /home/user/pub
* 下 mount 指令檢視
root@dns:~# mount

做完之後,大家所存進 pub 資料夾的檔案,實際上是放在 /home/ftp/pub,而且由於 1777 的作用,大家不可互相刪改對方的。只是,還有兩個問題尚待解決:

1. 每個帳號都要執行一次這樣的指令,著實麻煩。
2. 下次開機要再 key in 一次這樣的指令

一次把掛進所有使用者

筆者為解決上述的問題,已寫一支 shell script 在此: 檔案:Pubfolder.zip。本方案,會把所輸入的「共用資料夾」建在 /home/ftp 底下。以下是本程式之使用注意事項:

* 要共用時
root@dns:~# pubfolder.sh -m 共用資料夾名稱
若 /home/ftp 底下無此資料夾,會以 1777 權限自動建立
* 要解除共用時
root@dns:~# pubfolder.sh -u 共用資料夾名稱
* 下次開機也能自動掛載時,請在 rc.local 的底下, exit 0 之上,加上
root@dns:~# vi /etc/rc.local

……

pubfolder.sh -m 共用資料夾名稱

exit 0

* 使用「root@dns:~# mount」指令來檢視掛載狀態,若有以下字串,代表共用區已掛載


/home/ftp/public on /home/tnc01/public type none (rw,bind)
/home/ftp/public on /home/tnc02/public type none (rw,bind)
/home/ftp/public on /home/tnc03/public type none (rw,bind)

* 註1:若 「/home/ftp/共用資料夾」未事先建立,而產生此一錯誤訊息,可以不理會「special device /home/ftp/xxxx does not exist」
* 註2:預設所建立的共用資料夾權限為 1777 , 若想改為 777 請自行修改原始碼(把唯一有 1777 的地方改掉)
* 註3:mount 指令的運用,本來就是兩地都要有實體資料夾,意即本工具會在 /home/ftp 底下建一個真正的存放區,也會在各個 User 底下建一個同名「空的」的資料夾,供 mount –bind 用。
* 註4:延續註3 所提,在使用 pubfolder.sh -u 解除共用區之後,並不會把各家目錄底下的那個「空的」同名資料夾刪除,可能會造成您覺得共用區並沒刪除的假像。

此機制下rSync備份注意事項

由於我們把 /home/ftp/pub 掛載至 /home/user/pub ,因此,事實上所有資料檔案是在 /home/ftp/pub 底下,但 rsync 程式並不知道這件事,在備份執行時,會把每個人的 pub 皆複製一份,造成 pub 重覆備份的現象。解決方法如下:

* 修改 /root/bk-Linux.sh,在執行 rsync 指令的前面先缷載再掛載,舉例如下:

#! /bin/sh

/root/pubfolder.sh -u pub

/usr/bin/rsync -rvlHpogDtS –password-file=/root/rsyncd.secrets /var/lib/mysql my_backup@163.26.x.x::mybk
/usr/bin/rsync -rvlHpogDtS –password-file=/root/rsyncd.secrets /var/www yh_backup@163.26.x.x::mybk

/root/pubfolder.sh -m pub