在此舉兩例,RedHat6.0和FreeBSD2.2.7
---------------------------------------------------------------------
例一 系統是REDHAT6.0,使用wuftp 用戶名為:testuser 另外前提是你已經建了anonymous ftp server,這通常裝好系統就有了。
1 創建一個組,用groupadd命令,一般可以就用ftp組,或者任何組名.
-----相關命令: groupadd ftpuser
-----相關文件: /etc/group
-----相關幫助: man groupadd
2 創建一個用戶,如testuser,建立用戶可用adduser命令.如果你已在先前建立了testuser這個用戶,可以直接編輯/etc/passwd文件,把這個用戶加入到 ftpuser這個組中.
-----相關命令: adduser testuser -g ftpuser
-----相關文件: /etc/passwd
-----相關幫助: man adduser
3 修改/etc/ftpaccess文件,加入guestgroup的定義:
guestgroup ftpuser
我是這樣改的,加的是最5行
compress yes all
tar yes all
chmod no anonymous
delete no anonymous
overwrite no anonymous
rename no anonymous
chmod yes guest
delete yes guest
overwrite yes guest
rename yes guest
guestgroup ftpuser
除了加 guestgroup ftpuser 這行,其他4行也要加上,否則用戶登陸,雖然 可以達到用戶不能返回上級目錄的目的,但是卻只能上傳,不能覆蓋、刪除文件!
-----相關命令: vi /etc/ftpaccess
-----相關文件: /etc/ftpaccess
-----相關幫助: man ftpaccess,man chroot
4 向這個用戶的根目錄下拷貝必要的文件,拷貝ftp server自帶的目錄,把 /home/ftp/下的bin,lib兩個目錄拷貝到這個用戶的根目錄下,因為一些命令(主要是ls)需要Lib支持,否則不能列目錄和文件.
-----相關命令: cp -rf /home/ftp/lib /home/testuser;cp -rf /home/ftp/bin /home/testuse r
5 另外可別忘了關掉用戶的telnet權,否則就白做了噢. 怎不讓用戶telnet呢?很簡單:
在/etc/shells裡加一行/dev/null ,然可以直接編輯/etc/passwd文件, 把用戶的shell設置為/dev/null就可以了.
-----相關命令: vi /etc/passwd
這一步可以在步驟2 創建一個用戶時就先做好.
-----相關命令: adduser testuser -g ftpuser -s /dev/null
小經驗:只要把/home/ftp下的bin和lib目錄cp到/etc/skel目錄裡,以新建用戶都會自動把bin和lib目錄CP到用戶目錄裡,當然你也可以加上 public_html目錄和cgi-bin目錄. 有的資料說建用戶的時候把設置的目錄為如下格式:/ftp/./incoming ,我在REDHAT6.0中未做此設置,使用正常,其他版本我未試過. (詳見man ftpaccuss) 是不是繁了點,也許你你使用其他FTP軟件能更簡單些,如proftpd
--------------------------------------------------------------------
例二
系統是FreeBSD2.2.7 用戶名為:testuser 另外前提是你已經建了anonymous ftp server,這需要裝系統時選擇安裝.
1 創建一個組,用/stand/sysinstall命令,在Configure的User Management 裡可以加用戶或組,這次我們建一個ftpuser,如果用戶testuser還沒有建立, 同樣你可以用/stand/sysinstall命令建立,並且把他放入ftpuser組.
-----相關命令: /stand/sysinstall
-----相關文件: /etc/group
2 創建一個用戶,如testuser,建立用戶除/stand/sysinstall外,還有adduser 和pw命令.如果你已在先前建立了testuser這個用戶, 則你需要用chsh命令來 把他把這個用戶加入到ftpuser組,FreeBSD裡直接編輯/etc/passwd文件是無效的.
-----相關命令:/stand/sysinstall
-----修改命令:chsh testuser
-----相關文件:/etc/passwd, /etc/master.passwd
-----相關幫助:man adduser, man pw
3 編輯一個/etc/ftpchroot文件,通常系統裡可能沒有這個文件,需要你新建,內容就一句,如下: @ftpuser 然保存下來,ftpuser就是你需要chroot的組,你也可以加進其他組.
-----相關命令:vi /etc/ftpchroot
4 向這個用戶的根目錄下拷貝必要的文件,拷貝ftp server自帶的目錄,把 /var/ftp/下的bin目錄拷貝到這個用戶的根目錄下,否則不能列目錄和文件.
-----相關命令: cp -rf /var/ftp/bin /home/testuser
5 關掉用戶的telnet權, 用命令:chsh testuser ,把用戶的shell設置為 /sbin/nologin就可以了. 也可以象Redhat6.0裡一樣,在etc/shells裡加一行/dev/null,把用戶的shell設置為/dev/null,這一步可以在步驟2創建一個用戶時就先做好.
小經驗:把/var/ftp/bin目錄cp到FreeBSD2.2.7的/usr/share/skel,以就省事了.相關選項可在/etc/adduser.conf裡修改.
以上是我在使用中的一些小經驗,我看到問這個問題的人很多,就寫了這篇小 短文,希望能給大家一些幫助,如果有不對的地方,還請指正.
(http://www.fanqiang.com)
進入【UNIX論壇】
|