根據公司需要,要搭建一個proftpd,搭建過程中權限是最讓我費解的地方,不過在一位老師的幫助下,最終還是解決了權限問題,所以拿出來跟大伙分享下。
proftpd的認證機制有基於mysql的,系統用戶的,基於文件的也就是虛擬用戶,接下來說的就是基於虛擬用戶的。
下載地址:ftp://ftp.proftpd.org/distrib/source/
在帖子的附件中我也給出了proftpd的源碼包,版本為1.3.4a
1、解包
tar -zvxf proftpd-1.3.4a.tar.gz
2、配置
./configure
--prefix=/usr/local/proftpd/ 指定proftpd的安裝位置
--enable-nls 支持中文
3、編譯
make
4、編譯安裝
make install
啟動:/usr/local/proftpd/sbin/proftpd 按下回車,即可啟動
停止:/usr/local/proftpd/sbin/ftpshut 按下回車,即可關閉
###(這裡講一個關於proFTPD啟動方式的小技巧,回到proFTPD的源碼目錄,執行
cp ./contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd
chmod 755 /etc/rc.d/init.d/proftpd
OK,執行完以上兩條命令後,我們就可以用/etc/init.d/proftpd start|stop 來啟動和關閉FTP啦。
配置
首先講一下FTP配置的基本格式:
<Directory "需要共享的目錄路徑">
<Limit "權限參數">
************************* (此行寫把上面的權限賦予的用戶或組)
</Limit>
</Directory>
以上就是FTP配置目錄的基本格式,如果看不懂的話,下面我還會給出例子,可以參照。
配置目錄時用到的權限如下:
CMD:Change Working Directory 改變目錄
MKD:MaKe Directory 建立目錄的權限
RNFR: ReName FRom 更改目錄名的權限
DELE:DELEte 刪除文件的權限
RMD:ReMove Directory 刪除目錄的權限
RETR:RETRieve 從服務端下載到客戶端的權限
STOR:STORe 從客戶端上傳到服務端的權限
READ:可讀的權限,不包括列目錄的權限,相當於RETR,STAT等
WRITE:寫文件或者目錄的權限,包括MKD和RMD
DIRS:是否允許列目錄,相當於LIST,NLST等權限,還是比較實用的
ALL:所有權限:
LOGIN:是否允許登陸的權限
針對上面的這個Limit(權限)所應用的對象,又包括以下范圍:
AllowUser 針對某個用戶允許的Limit
DenyUser 針對某個用戶禁止的Limit
AllowGroup 針對某個用戶組允許的Limit
DenyGroup 針對某個用戶組禁止的Limit
AllowAll 針對所有用戶組允許的Limit
DenyAll 針對所有用戶禁止的Limit
舉個例子,形象的說明下權限方面的配置。
要在ftp上共享運維部的目錄,要求運維部的經理可以上傳,刪除,普通員工只能上傳,下載,沒有刪除權限。
運維部路徑在/mnt/pub/yunwei
proftpd.conf中關於運維部目錄權限的設置如下:
<Directory "/var/ftp/yunwei">
<Limit CWD MKD RNFR READ WRITE STOR RETR>
DenyAll 拒絕所有人往該目錄下執行Limit後的操作指令
</Limit>
<Limit DELE>
AllowUser jingli 只允許經理刪除
DenyAll 禁止任何人在該目錄下刪除文件
</Limit>
<Limit CWD MKD RNFR READ WRITE STOR RETR>
AllowUser yunwei 僅允許yunwei用戶(組)可以執行Limit後的所有指令
</Limit>
</Directory>
上面就是關於目錄的權限設置,接下來就是新建虛擬用戶。
進入proftpd的源碼目錄
cp ftpasswd /usr/local/proftpd/bin/
chmod +x /usr/local/proftpd/bin/ftpasswd
上面兩步是讓ftpasswd 可執行。
ftpasswd命令格式說明:
--passwd 創建密碼文件,即AuthUserFile指定的文件
--group 創建組文件
--name 指定創建的用戶名
--uid 指定用戶虛擬UID
--gid 指定虛擬GID
--home 指定用戶家目錄
--shell 指定用戶Shell
--file 指定創建的文件名
例:新建一個用戶
ftpasswd --passwd --file=XX --name=XX --uid=XX --home=XX --shell=XX
新建一個組
ftpasswd --group --file=XX --name=XX --gid=XX
如果想講用戶加入到組的話,直接vim編輯組文件,在組後面添加上用戶就OK了。
以上就是proftpd基於虛擬用戶的設置,有錯的不足的地方,煩請各位大牛指出,先行謝過。
本文出自 “我的未來不是夢。” 博客,請務必保留此出處http://song49.blog.51cto.com/4480450/791018