新建系統使用者vsftpd,使用者目錄為/home/wwwroot, 使用者登入終端設為/bin/false(即使之不能登入系統)
useradd vsftpd -d /home/wwwroot -s /bin/false
所配置的虛擬使用者其實都是對映成配置的宿主使用者。
touch /etc/vsftpd/virtusers
第一行賬號,第二行密碼,注意:不能使用root做使用者名稱,系統保留
vi /etc/vsftpd/virtusers
db_load -t -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
修改/etc/pam.d/vsftpd配置檔案
#%pam-1.0
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
注意:如果系統為32位,上面lib64
改為lib
,否則配置不生效。
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
配置檔名必須為虛擬使用者名稱
touch web1
vi web1
新增以下內容
#設定使用者目錄
#設定上傳檔案的許可權,掩碼表示
anon_umask=022
#其他設定
write_enable=yes
anon_world_readable_only=no
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_othr_write_enable=yes
編輯/etc/vsftpd/vsftpd.conf
檔案
anonymous_enable=no //設定不允許匿名訪問
local_enable=yes //設定本地使用者可以訪問。注:如使用虛擬宿主使用者,在該專案設定為no的情況下所有虛擬使用者將無法訪問
chroot_list_enable=yes //使使用者不能離開主目錄
chroot_list_file=/etc/vsftpd/chroot_list
ascii_upload_enable=yes
pam_service_name=vsftpd //pam認證檔名。pam將根據/etc/pam.d/vsftpd進行認證
##下面的配置在conf中手動新增
guest_enable=yes //設定啟用虛擬使用者功能
guest_username=vsftpd //指定虛擬使用者的宿主使用者
allow_writeable_chroot=yes
user_config_dir=/etc/vsftpd/vuser_conf //設定虛擬使用者個人vsftp的centos ftp服務檔案存放路徑。
systemctl restart vsftpd.service
chkconfig vsftpd on
設定上傳之後檔案的許可權,有兩種情況:
如果使用vsftp的是本地使用者,則要修改配置檔案中的 local_umask 的值。
如果使用vsftp的是虛擬使用者,則要修改配置檔案中的 anon_umask 的值。
原因在於,從vsftpd_2.3.5版開始,取消了登陸使用者的根目錄的可寫許可權。
解決辦法1:
去掉該使用者根目錄的寫的許可權,再新建一目錄,以後用新目錄
解決辦法2:
保持舊版的管理策略,ftp使用者根目錄還是可以設定為可寫許可權。
在vsftpd.conf中新增如下配置
allow_writeable_chroot=yes
anonymous_enable=no # 匿名訪問
local_umask=444 #設定本地使用者的檔案生成掩碼
dirmessage_enable=yes #啟用目錄資訊,當遠端使用者更改目錄時,將出現提示資訊
connect_from_port_20=yes #啟用ftp資料埠的連線請求
xferlog_file=/var/log/xferlog #預設日誌位址
xferlog_std_format=yes #如果啟用,則日誌檔案將會寫成xferlog的標準格式,如同wu-ftpd 一般。預設值為關閉。
chroot_local_user=yes #用於指定使用者列表檔案中的使用者是否允許切換到上級目錄。預設值為no。
chroot_list_enable=no #當chroot_list_enable=no,chroot_local_user=yes時,所有的使用者均不能切換到其他目錄
listen=yes #設定vsftpd伺服器是否以standalone模式執行。以standalone模式執行是一種較好的方式,此時listen必須設定為yes,此為預設值。建議不要更改,有很多與伺服器執行相關的配置命令,需要在此模式下才有效。若設定為no,則vsftpd不是以獨立的服務執行,要受到xinetd服務的管控,功能上會受到限制。
virtual_use_local_privs=no #
anon_world_readable_only=no
listen_ipv6=yes
anon_upload_enable=yes
pam_service_name=vsftpd
userlist_enable=yes
guest_enable=yes
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vsftpd_user_conf
vsftpd_log_file=/tmp/vsftpd.log
allow_writeable_chroot=yes
write_enable=yes
vsftpd服務虛擬使用者配置
所謂虛擬使用者就是沒有使用真實的帳戶,但ftp登入需要乙個使用者身份,這個時候我們可以給它建立乙個使用者,專門來給這些虛擬的使用者用ok拉。建立虛擬使用者 useradd d home ftpsite virtual chown virtual.virtual home ftpsite 修改 etc...
vsftpd伺服器配置
vsftpd是非常安全的ftp伺服器程式,在開發linux應用程式中它是乙個非常好的工具。安裝linux系統時一般已經安裝,但需要配置起來作為與開發板進行ftp檔案傳輸的後台服務 器。通過命令可以看到系統中是否已經安裝vsftpd伺服器 rpm q vsftpd vsftpd 2.0.4 1.2 如...
vsftpd配置虛擬使用者
安裝vsftpd yum y install vsftpd 建立本地ftp賬戶 groupadd ftpuser useradd g ftpuser s sbin nologin ftpuser 修改suselinux配置 setsebool p ftp home dir on 建立虛擬使用者的賬戶...