考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:操作系统 > Unix > 文章内容
  

Unix系统:FreeBSDFTP的架设教程

 [ 2017年6月21日 ] 【

  說明:

  小老鼠開頭的表示後面接的名稱為群組。

  有方法可以只開放一個帳號不 chroot 其它全部 chroot 嗎?

  最近 FreeBSD 內建的 ftpd 在 /etc/ftpchroot 又多了可設定的東東, 如果 man ftpchroot 可以看到說明,就表示可以使用下面的的設定來達到只開放部份帳號不鎖定在個人目錄的目的。

  首先開啟 /etc/ftpchroot 來編輯:

  ee /etc/ftpchroot

  假設 admin 是管理員的帳號,讓 admin 可以在系統中到處遊走,就裡面放入下面三行:

admin    /
ftp    .
@    www

  儲存好就可以用 ftp 連線看看, 上面的設定有底下的效果:

  第一行設定:admin 登入時會切換到 /

  第二行設定:匿名登入時則保持原來的方式,只能在帳號指定的公用目錄活動。

  第三行設定:其它使用者則只能在個人目錄中的 www 資料夾中活動。

  第三行應用在 server 有 apache 提供使用者放網頁, 而 apache 設定 UserDir=www 時,以後只要告訴使用者: 『請將做好的網頁直接用自己的帳號 ftp 到主機即可』, 以前都要解釋半天,請他 ftp 後把網頁放到 www 資料夾, 不過,記得先將使用者的 www 目錄先建立好,不然可是會連登入都無法登入哦!!

  在 FreeBSD 4.8R 以後的 /etc/ftpchroot 又新增了功能,詳細的設定可以 man ftpchroot (不過,之前的版本沒這鍋 man )。

  1-3-2 方法二:利用 /etc/login.conf

  這個方法是利用使用者資料庫 (系統密碼檔 /etc/master.passwd) 中 login class 的欄位,來設定使用者隸於的 class ,然後在 /etc/login.conf 中設定各 class 在 FTP chroot 的動作為何,在 /etc/ftpchroot 不方便設定時,適用於要處理很多人的狀況。

  開啟 /etc/login.conf 來修改,執行:

  ee /etc/login.conf

  然後找到下面 default: 開頭的哪幾行,類似下面的內容:

default:\
     :copyright=/etc/COPYRIGHT:\
     :welcome=/etc/motd:\
...................略

  加下面這一行:

  :ftp-chroot:\

  變成:

default:\
     :ftp-chroot:\
     :copyright=/etc/COPYRIGHT:\
     :welcome=/etc/motd:\
...................略

  然後執行下列這行指令,把 login.conf 轉成資料庫格式

  cap_mkdb /etc/login.conf

  這樣,所有的帳號都會做 chroot,活動的範圍就限定在自己的目錄中。

  想全部管制,但又想開放系統管理用的帳號不做 chroot 呢?

  前面的方法,我們設定的是 default 這個 login class 要做 FTP 的 chroot,也就是所有人共同的設定,想讓系統管理可以到處遊走,就設定一個系管的 class ,並且將 ftp-chroot 的屬性去掉即可達到部份開放的目的。

  開啟 /etc/login.conf 新增系管的 login class 叫 admin,並加入 ftp-chroot 為否的設定:

  ee /etc/login.conf

  新增下面幾行(注意藍色的部份), 注意:除了前面 defaults: 下的 ftp-chroot 部份,我們在下面另外新增一個 login class 叫 admin:


default:\
    :ftp-chroot:\
    :copyright=/etc/COPYRIGHT:\
    :welcome=/etc/motd:\
...................略

admin:\
    :ftp-chroot@:\
    :tc=default:

...................略

  然後執行下列這行指令,把 login.conf 轉成資料庫格式:

  cap_mkdb /etc/login.conf

  注意:上面在 admin 這個 class 中用的是:

  :ftp-chroot@:\

  ftp-chroot 多了個小老鼠哦!它代表這個值要相反的意思,也就不做 ftp-chroot。

  再來,我們要告訴系統,誰屬於 admin 這個 login class ,直接修改帳號資料庫,執行

  vipw

  修改管理員 (不做 chroot) 的 login class 為 admin

  例如:

  假設系統管理員 gsyan 原來的帳號資料是:

  gsyan:*:1000:1000::0:0:大雄:/home/gsyan:/bin/tcsh

  要將它的 login class 修改為 admin ,就改為下面的樣子:

  gsyan:*:1000:1000:admin:0:0:大雄:/home/gsyan:/bin/tcsh

  都修改完了就儲存檔案,利用 FTP 軟體以不同身份登入測試看看。

  說明:

  FreeBSD 中 /etc/master.passwd 密碼欄位依序為:

  帳號名稱:密碼:UID:GID:class:強制換密碼的時間:有效時間:資料:家目錄:shell

  所以要改的 login class 是第五個欄位。

  關於密碼檔的格式可以 man 5 passwd 查看

  將不同身份的使用者分為幾個 login class,並利用 /etc/login.conf 來設定各身份能夠使用的系統資源是滿不錯的管制工具,非常值得好好的研究,詳細的內容可以 man login.conf 。

  1-4 提供匿名(訪客用)的 FTP 服務

  讓在系統中沒有帳號訪客可以下載 FTP 站中的檔案,這種叫匿名的 FTP 服務 (Anonymous FTP),要提供這種服務必須有一個叫 ftp 的帳號並建立好相關的目錄及檔案,這部份如果不清楚,利用 /stand/sysinstall 來做是最輕鬆不過的。底下是設定的步驟:

本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved