« 2006/12, Vol. 131 PChome Magazine | 首頁 | 在 Fedora Core 6 Linux 安裝 Freemind »

2006年12月12日

ProFTPD 虛擬帳號

目的: 在 ProFTPD 建立虛擬帳號, 並限制只能以虛擬帳號登入 FTP Server

環境: ProFTPD-1.3.0a @ Fedora Core 6 Linux

取得並安裝 ProFTPD

wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0a.tar.bz2

tar jxf proftpd-1.3.0a.tar.bz2

cd proftpd-1.3.0a

./configure && make && make install

取得 ftpasswd

cd /usr/local/bin

wget http://www.castaglia.org/proftpd/contrib/ftpasswd

chmod +x ftpasswd

編輯 proftpd.conf

vi /usr/local/etc/proftpd.conf

AuthUserFile /usr/local/etc/ftpd.passwd
AuthGroupFile /usr/local/etc/ftpd.group
AuthOrder mod_auth_file.c
RequireValidShell off
DefaultRoot ~

建置虛擬帳戶

#建立 FTP 資料夾
mkdir /var/ftp
chmod 1777 /var/ftp

#建立 ProFTPD 虛擬帳號
cd /usr/local/etc
ftpasswd --passwd --name=david --uid=1001 --gid=1001 --home=/var/ftp/ --shell=/bin/false
ftpasswd --group --name=david --gid=1001 --member=david

啟動 proftpd

proftpd (預設載入 /usr/local/etc/proftpd.conf)

登入測試

ftp localhost (只能以虛擬帳號登入)


參考資料:

相關網頁:

Posted by Jamyy at 2006年12月12日 09:09

Trackback Pings

TrackBack URL for this entry:
http://cha.homeip.net/cgi-bin/mt/mt-tb.cgi/246

Comments

請問在 proftpd 中可否設定系統使用者的子目錄供非系統使用者來 upload/download file & dir ,但該系統使用者在不用 login 系統的情況下,可將這些file 作刪除的動作呢?
謝謝

Posted by: 楊文章 at 2007年03月10日 21:00

若想利用虛擬帳號存取系統使用者路徑, 最簡單的方式就是在 ftpasswd 建立虛擬帳號的時候, 將他的 uid 或(與) gid 指定成與某系統使用者一樣的 uid / gid 即可.

亦可利用 ext2/ext3 POSIX ACL 權限控制, 將虛擬帳號的權限寫入指定路徑中. 相關用法請 man setfacl 或 http://www.lccnet.com.tw/commercial/e-paper/0501/teacher-lecture-second0501.html

ex. setfacl -m u:1001:rwx ~someone (賦予 uid 1001 "rwx" 的權限於 /home/someone)

此外, 要讓虛擬帳號與本機實體帳號的使用者都能登入 ftp
需設定 proftpd.conf:
AuthOrder mod_auth_file.c mod_auth_pam.c*

若 AuthPAM off 則上述 mod_auth_pam.c* 應改為 mod_auth_unix.c

Posted by: Jamyy at 2007年03月12日 12:06