close

這應該不是正規的做法,只是臨時需求。

一般使用者都會被限制在家目錄中(chroot),要將檔案上傳到網站是不被允許的。

如何上傳網頁到 /var/www/html

[chroot 注意]

  1. ChrootDirectory 指定的目錄開始到系統根目錄,目錄的擁有者只能是 root
  2. 同上 ChrootDirectory 指定的目錄開始到系統根目錄,都不能有群組寫入的權限
  3. 因為 chroot 在 ftp 下 ln -s (symbolic link) 無法作用

 

方法一:使用 symbolic link 將個人目錄連結到網站目錄 (/var/www/html/) 下

  • 在個人家目錄下建置上傳網站目錄
    # mkdir /home/user/web
     
  • 變更家目錄權限
    # chown root.root /home/user (chroot 目錄 home , user 擁有者只能是 root)
    # chown 755 /home/user (chroot 目錄 home, user 不能具有群組寫入權限)
    # chown user.user /home/user/web (使用者要上傳檔案的目錄)
     
  • 鏈結目錄
    # ln -s /home/user/web /var/www/html (在 /var/www/html 下會產生一個 web 軟連結目錄)
     
  • http://localhost/web/ 即可看到
     

方法二:使用 mount --bind 

  • 在個人家目錄下建置目錄
    # mkdir /home/user/web
     
  • 變更家目錄權限
    # chown root.root /home/user (chroot 目錄 home , user 擁有者只能是 root)
    # chown 755 /home/user (chroot 目錄 home, user 不能具有群組寫入權限)
    # chown user.user /home/user/web (使用者要上傳檔案的目錄)
     
  • 移動舊檔案
    # cp -rpf /var/www/html* /home/user/web
    # mv /var/www/html /var/www/html.bak
     
  • 掛載目錄
    # mount --bind /var/www/html /home/user/web
    # chmod 775 /var
    # chmod 775 /var/www
    # chmod 775 /var/www/html
     
  • 開機自動掛載
    1. 方法一:
      # vi /etc/rc.local
      加入 mount --bind /var/www/html /home/user/web
       
    2. 方法二:
      # echo 'mount --bind /var/www/html /home/user/web'>> /etc/rc.local
       

 

arrow
arrow

    Godspeed 發表在 痞客邦 留言(0) 人氣()