網路開展事業或在網路創業賺錢的第一步:【架設24小時賺錢網站主機】比網頁設計更優先!

感謝您造訪 Linux主機伺服器架設技術基地。 你可進入替你架設主機.影片教你維護頁面,詳細瞭解Linux主機架設及相關技術維護影片教學(完整配套措施),有主機馬上可以架設網站營運,完全無限制!

租用不如自有主機!聰明的網站經營者都選擇架設Linux主機伺服器做為網站運作平台,因功能完整又強大,免費架站程式超多!完全沒有版權問題,超強『防駭客攻擊與入侵』及安全防護可以讓你無後顧之憂。

                    架設主機.影片教你維護: http://por.tw/linux/new-E_learning/index.php

Linux主機伺服器架設技術基地  維護團隊  敬上

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

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

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

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

attachments/201304/0938046037.jpg

安裝

    * 安裝
      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
引用通告地址: 點擊獲取引用地址
標籤: Linux主機伺服器
評論: 0 | 引用: 0 | 閱讀: 6696