A. vsftp下載不成功550 Permission denied
我來回答吧,這個問題應該很少有人會遇到,一般都是上傳文件時報錯的。
下載時報550錯誤是因為vsftpd.conf文件中或者ftp虛擬用戶的配置文件中,寫了download_enable=NO參數,所以用戶可以進行列表、上傳、刪除操作,就是不能下載。把這個參數改成download_enable=YES,之後重啟vsftpd服務,用戶就能下載了。
B. linux中怎麼安裝vsftpd
vsftpd是Linux下比較著名的FTP伺服器,搭建FTP伺服器當然首選這個。
本文介紹了在CentOS 6.4下安裝vsftpd、配置虛擬用戶登錄FTP的過程。
正文:
一:安裝vsftpd
查看是否已經安裝vsftpd
rpm -qa | grep vsftpd
如果沒有,就安裝,並設置開機啟動
yum -y install vsftpd
chkconfig vsftpd on
二:基於虛擬用戶的配置
所謂虛擬用戶就是沒有使用真實的帳戶,只是通過映射到真實帳戶和設置許可權的目的。虛擬用戶不能登錄CentOS系統。
修改配置文件
打開/etc/vsftpd/vsftpd.conf,做如下配置
anonymous_enable=NO //設定不允許匿名訪問
local_enable=YES //設定本地用戶可以訪問。註:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問
chroot_list_enable=YES //使用戶不能離開主目錄
ascii_upload_enable=YES
ascii_download_enable=YES //設定支持ASCII模式的上傳和下載功能
pam_service_name=vsftpd //PAM認證文件名。PAM將根據/etc/pam.d/vsftpd進行認證
以下這些是關於vsftpd虛擬用戶支持的重要配置項,默認vsftpd.conf中不包含這些設定項目,需要自己手動添加
guest_enable=YES //設定啟用虛擬用戶功能
guest_username=ftp //指定虛擬用戶的宿主用戶,CentOS中已經有內置的ftp用戶了
user_config_dir=/etc/vsftpd/vuser_conf //設定虛擬用戶個人vsftp的CentOS FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名
進行認證
首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包。
yum install db4 db4-utils
然後,創建用戶密碼文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用戶名,偶行是密碼
test
123456
接著,生成虛擬用戶認證的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
隨後,編輯認證文件/etc/pam.d/vsftpd,全部注釋掉原來語句,再增加以下兩句:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
最後,創建虛擬用戶配置文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/test //文件名等於vuser_passwd.txt裡面的賬戶名,否則下面設置無效
內容如下
local_root=/ftp/www //虛擬用戶根目錄,根據實際情況修改
write_enable=YES //可寫
anon_umask=022 //掩碼
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
設置Selinux
setsebool -P ftp_home_dir=1 //設置ftp可以使用home目錄
sersebool -P allow_ftpd_full_access=1 //設置ftp用戶可以有所有許可權
設置FTP根目錄許可權
mkdir /ftp/www //創建目錄
chmod R 755 /ftp
chmod R 777 /ftp/www
最新的vsftpd要求對主目錄不能有寫的許可權所以ftp為755,主目錄下面的子目錄再設置777許可權
設置防火牆
打開/etc/sysconfig/iptables
在「-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT」,下添加:
-A INPUT -m state --state NEW -m tcp -p -dport 21 -j ACCEPT
然後保存,並關閉該文件,在終端內運行下面的命令,刷新防火牆配置:
service iptables restart
OK,運行「service vsftpd start」,你就可以訪問你的FTP伺服器了。
C. 怎麼讓LINUX下的FTP用戶只有上傳、下載的許可權,但不能刪除FTP上的文件
LINUX中FTP服務默認為VSFTPD,配置用戶許可權使用vsftpd.conf文件
進行如下配置,附加配置說明
anon_world_readable_only=NO (下載許可權回 開放download用戶的下載許可權—答—只能下載;注意這個不地方不要寫成YES,否則將不能列出文件和目錄)
write_enable=YES (寫許可權)
anon_upload_enable=YES(上傳許可權)
anon_mkdir_write_enable=YES (創建目錄的許可權)
anno_other_writer_enable=NO(刪除/重命名的許可權 設置此項為NO則不能刪除文件)
D. vsftp 沒有讀取虛擬用戶配置
1、建立虛擬用戶口令庫文件;
# cat yy.txt
注意:奇數行為用戶,偶數行為密碼;
2、生成vsftpd的認證文件;
# db_load -T -t hash -f yy.txt /etc/vsftpd/user.db //生成vsftpd的認證文件
# file /etc/vsftpd/user.db
/etc/vsftpd/yy.db: Berkeley DB (Hash, version 8, native byte-order)
# chmod 600 /etc/vsftpd/user.db //設置yy.db文件許可權只對root用戶可讀寫;
# ll /etc/vsftpd/user.db
-rw------- 1 root root 12288 Jul 1 19:57 /etc/vsftpd/yy.db
3、建立虛擬用戶所需的PAM配置文件;內容如下:
# cat /etc/pam.d/user.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/user
account required /lib/security/pam_userdb.so db=/etc/vsftpd/user
4、建立虛擬用戶及要訪問的目錄並設置相應的許可權
# useradd -d /home/ftp ftptest //建立用戶名為ftptest,對應的宿主目錄為ftp
# chmod 700 /home/ftp //設置許可權是700
5、修改vsftpd.conf配置文件,添加虛擬用戶的配置項,內容如下:
guest_enable=YES
guest_username=ftptest
pam_service_name=user.vu
6、重新啟動vsftpd服務
#service vsftp restart
7、測試vsftpd中的虛擬用戶賬號
#touch /home/ftp/a.txt
#chown ftptest.ftptest /home/ftp/a.txt //建立一個文件供下載測試用
C:\Documents and Settings\admin>ftp 192.168.2.101
Connected to 192.168.2.101.
220 (vsFTPd 2.0.1)
User (192.168.2.101:(none)): ky //輸虛擬FTP用戶名
331 Please specify the password.
Password: //輸FTP的密碼
230 Login successful. //成功
ftp> get a.txt //下載a.txt文件
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for a.txt (0 bytes).
226 File send OK. //成功下載
ftp>
8、為不同的虛擬用戶給許可權
1)修改vsftpd.conf配置文件,在裡面添加以下內容:
user_config_dir=/etc/vsftpd_user_conf //設置在/etc/vsftpd_user_conf這個目錄下保存虛擬用戶的配置文件,
2)建立用戶配置文件目錄
# mkdir /etc/vsftpd_user_conf
3)為虛擬用戶建立單獨的配置文件
# cat /etc/vsftpd_user_conf/ky //虛擬用戶ky的配置文件
anon_world_readable_only=NO //具有瀏覽和下載的許可權
# cat /etc/vsftpd_user_conf/xx //虛擬用戶xx的配置文件
anon_world_readable_only=NO //具有瀏覽和下載的許可權
anon_upload_enable=YES //具有上傳的許可權
anon_mkdir_write_enable=YES //有建立和刪除目錄許可權
anon_other_write_enable=YES //有文件改名和刪除文件許可權