linux vsftpd 創建虛擬用戶 過程記錄

之前用系統賬戶作爲ftp的登錄賬戶,比較不安全,改用虛擬賬戶。步驟如下:
 
1.安裝vsftpd、db_load,省略
2.在一個目錄創建一個用戶名密碼文件,比如
[plain] view plaincopy
  1. vi login.txt #輸入用戶名密碼奇數行是用戶名、偶數行是密碼  
  2. test1  
  3. testpwd  
  4. test2  
  5. testpwd  
3.生成db文件
[plain] view plaincopy
  1. db_load –T –t hash –f login.txt /etc/vsftpd/vsftpd_login.db  
4.修改權限
[plain] view plaincopy
  1. chmod 600 /etc/vsftpd/vsftpd_login.db  
5.配置pam文件
[plain] view plaincopy
  1. vi /etc/pam.d/vsftpd.v #輸入以下配置  
  2. auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  
  3. account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  
  4. #後來登錄ftp出現530錯誤,需要把上面兩行改爲:可能是跟64位系統有關  
  5. auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login  
  6. account required pam_userdb.so db=/etc/vsftpd/vsftpd_login  
6.創建虛擬用戶
[plain] view plaincopy
  1. useradd vsftpd -d /usr/local/vsftpd -s /sbin/nologin  
-d 指定home目錄,-s設置成不可登錄系統的用戶
修改目錄權限chown -R vsftpd /usr/local/vsftpd
7.修改vsftpd配置文件
[plain] view plaincopy
  1. vi /etc/vsftpd/vsftpd.conf  
  2. anonymous_enable=NO  
  3. dirmessage_enable=YES  
  4. chroot_local_user=YES  
  5. guest_enable=YES  
  6. guest_username=vsftpd  
  7. pam_service_name=vsftpd.v  
  8. user_config_dir=/etc/vsftpd/v_user_conf  
  9. local_root=/usr/local/vsftpd  
8.創建用戶配置文件
[plain] view plaincopy
  1. cd /etc/vsftpd  
  2. mkdir v_user_conf  
  3. vi v_user_conf/test1 #給全部權限,限定根目錄  
  4. local_root=/usr/local/vsftpd/test1  
  5. anon_world_readable_only=NO  
  6. write_enable=YES  
  7. anon_mkdir_write_enable=YES  
  8. anon_upload_enable=YES  
  9. anon_other_write_enable=YES  
  10.   
  11. vi v_user_conf/test2 #給全部權限,限定根目錄  
  12. local_root=/usr/local/vsftpd/test2  
  13. anon_world_readable_only=NO  
  14. write_enable=YES  
  15. anon_mkdir_write_enable=YES  
  16. anon_upload_enable=YES  
  17. anon_other_write_enable=YES  
9.重啓vsftpd
[plain] view plaincopy
  1. service vsftpd restart  

用設置的test1、test2登錄可以了。

由於編碼的問題,如果將以上代碼直接copy到linux中,會有問題。所以,最好自己敲代碼。
以上爲轉載。以下自己寫的:
修改虛擬用戶密碼:
1.編輯login.txt
2.執行:db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
3.重啓vsftp:service vsftpd restart 

遇到問題:
1.-bash: db_load: command not found。
解決方法:參考http://blog.chinaunix.net/uid-25324849-id-223412.html 安裝相應的rpm即可
2. 553 Could not create file

    a.先確保你的SELinux關閉了,命令如下:

    sestatus

    返回“SELinux status: disabled”,可以進行下一步。否則看這篇文章:http://heipark.iteye.com/blog/1671578

    b.確保你的上傳目錄權限爲777



新增虛擬用戶,以新增testHello爲例
1.編輯login.txt。新增用戶名testHello,密碼testHelloPasswd
testHello
testHelloPasswd
2.執行:db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
3.賦予權限
  1. cd /etc/vsftpd  
  2.  
  3. vi v_user_conf/testHello  
  4. local_root=/usr/local/vsftpd/testHello  #指定根目錄 
  5. anon_world_readable_only=NO  
  6. write_enable=YES  
  7. anon_mkdir_write_enable=YES  
  8. anon_upload_enable=YES  
  9. anon_other_write_enable=YES 
4.把指定的根目錄testHello賦予真實linux用戶vsftpd(這個用戶在前面已建過)
chown -R vsftpd  /usr/local/vsftpd/testHello/
5.在/etc/vsftpd/user_list文件中新增用戶testHello
6..重啓vsftp:service vsftpd restart
發佈了37 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章