linux下配置ftp伺服器並設定虛擬賬號的不同許可權

綠蘿綠蘿123發表於2017-06-19

1、建立使用者資料庫

點選(此處)摺疊或開啟

  1. #vim /etc/vsftpd/vsftpd_login.txt
  2. user1
  3. 123
  4. user2
  5. 123

2 生成資料庫:

1
2
3
db_load:安裝 db4,db4-devel,db4-utils
#yum -y install db4*
#db_load -T -t hash -f /etc/vsftpd/vsftpd_login.txt /etc/vsftpd/vsftpd_login.db

3 修改資料檔案訪問許可權:

1
chmod 600  /etc/vsftpd/vsftp_login.db


4 修改pam配置:

1
2
3
4
5
#cat /etc/pam.d/vsftpd.vu
將原來的全部註釋掉,加入:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注意:db=/etc/vsftpd/vsftpd_login 後面的.db必須去掉


5 建立虛擬賬號對應的系統使用者:
就用ftp預設賬戶

修改主配置檔案,guest_enable代表開啟虛擬賬戶功能,

所有的虛擬賬戶都將被對映為guest_username指定的系統賬戶。

如果需要對虛擬賬戶做許可權設定,透過與匿名賬戶一樣的設定項進行,

如anon_mkdir_write_enable=NO既是控制虛擬賬戶無法建立目錄。

[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=NO    #在每個虛擬賬戶裡單獨設定

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES

guest_enable=YES     #允許虛擬賬戶

guest_username=ftp    #所有虛擬賬戶的真實對映賬戶

listen=YES

listen_port=21

pam_service_name=vsftpd.vu

user_config_dir=/etc/vsftpd/vconf
pasv_promiscuous=YES


max_clients=40             #最多40個客戶端連線
max_per_ip=5               #每個IP最多5個連線

6、配置/etc/vsftpd/vconf裡的虛擬使用者配置
[root@localhost vconf]# ls
user1  user2

vi user1
local_root=/data/ftp
write_enable=YES

vi user2
local_root=/data/ftp   #user2只有下載的權利,沒有上傳的權利。

7、重新啟動
service vsftpd restart



ps:配置完成後,在用ftp客戶端測試時,發現問題。
1、提示錯誤程式碼:530 Login incorrect.
在vsftpd.vu裡把

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

裡的/lib/security/pam_userdb.so絕對路徑去掉,只用pam_userdb.so

2、提示錯誤連線失敗 OOPS: 500 OOPS: child died
網上的方法

修改vsftpd服務端配置檔案

vi /etc/vsftpd/vsftpd.conf

增加下面行,重啟服務即可

pasv_promiscuous=YES

解決辦法二,如果上面辦法還是解決不了我們可以嘗試如下解決辦法

1、 檢視 SELinux 的狀態: sestatus -b | grep ftp

2、 在出現的結果中可以看到

 ftp_home_dir off

tftpd_disable_trans off

之類。我們現在只要把其中之一設定為on就可以啦。

3、 setsebool -P ftpd_disable_trans on 或者 setsebool -P ftp_home_dir on

4、 重啟vsftpd: service vsftpd restart

5.如果還是不成功的話,執行以下命令,然後重啟FTP
[root@windos-test-01 vsftpd]# setsebool allow_ftpd_full_access 1
[root@windos-test-01 vsftpd]# setsebool allow_ftpd_use_cifs 1
[root@windos-test-01 vsftpd]# setsebool allow_ftpd_use_nfs 1
[root@windos-test-01 vsftpd]# setsebool -P ftp_home_dir 1
[root@windos-test-01 vsftpd]# setsebool httpd_enable_ftp_server 1
[root@windos-test-01 vsftpd]# setsebool tftp_anon_write 1
[root@windos-test-01 vsftpd]# service vsftpd restart


但是我試過,還是不行

3、連線失敗 OOPS: cannot change directory:/data/ftp
usermod -d /data/ftp ftp  #安排主目錄給ftp賬戶

4、可以連上了,但是不能修改檔案
chown -R ftp.ftp /data/ftp

發現上傳的漢字文件會有亂碼。建議採用winscp使用ftp。

掛載NAS盤後,按照平常的設定會無法修改檔案目錄的許可權。在EMC儲存上設定的時候注意,







來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29820633/viewspace-2140967/,如需轉載,請註明出處,否則將追究法律責任。

相關文章