vsftp 實現不同用戶不同權限配置


先說說主配置文件vsftpd.conf中的配置參數說明:這里的參數只是初步設定的默認參數,具體可在各虛擬用戶中配置

anonymous_enable=NO  #不允許匿名訪問

local_enable=YES     #設定本地用戶可以訪問。注意:主要是為虛擬宿主用戶,如果該項目設定為NO那么所有虛擬用戶將無法訪問。

write_enable=YES   #設定可以進行寫操作。

local_umask=022        #設定上傳后文件的權限掩碼,文件644,文件夾755

anon_upload_enable=NO  #禁止匿名用戶上傳文件。

anon_mkdir_write_enable=NO  #禁止匿名用戶建立目錄。

dirmessage_enable=YES       #設定開啟目錄標語功能。

xferlog_enable=YES           #設定開啟日志記錄功能。

connect_from_port_20=YES    #設定端口20進行數據連接。

chown_uploads=NO   #設定禁止上傳文件更改宿主。

xferlog_file=/var/log/vsftpd.log  #設定Vsftpd的服務日志保存路徑。注意,該文件默認不存在。必須要手動touch出來,並且由於這里更改了Vsftpd的服務宿主用戶為手動建立的Vsftpd。必須注意給與該用戶對日志的寫入權限,否則服務將啟動失敗。

xferlog_std_format=YES   #設定日志使用標准的記錄格式。

#idle_session_timeout=600 #設定空閑連接超時時間,這里使用默認。將具體數值留給每個具體用戶具體指定,當然如果不指定的話,還是使用這里的默認值600,單位秒。

nopriv_user=www2013 #設定支撐Vsftpd服務的宿主用戶為手動建立的Vsftpd用戶。注意,一旦做出更改宿主用戶后,必須注意一起與該服務相關的讀寫文件的讀寫賦權問題。比如日志文件就必須給與該用戶寫入權限等。

async_abor_enable=YES    #設定支持異步傳輸功能。

ascii_upload_enable=YES
ascii_download_enable=YES     #設定支持ASCII模式的上傳和下載功能。

ftpd_banner=This Vsftp server supports virtual users ^_^    #設定Vsftpd的登陸標語。

Banner_file =/…                        #設定Vsftpd的登陸標語的文件。

下面是一個比較扯淡的參數:有下面4種組合

chroot_local_user=YES

chroot_list_enable=NO

# (default follows)

chroot_list_file=/etc/vsftpd/chroot_list

參數

取值

取值

取值

取值

chroot_local_user

YES

NO

YES

NO

chroot_list_enable

YES

YES

NO

NO

意義

文件中列出的用戶根目錄為系統根目錄,其它用戶根目錄為自己主目錄。

文件中列出的用戶根目錄為自己主目錄,其它用戶根目錄為系統根目錄。

全部用戶根目錄都是自己主目錄。

全部用戶根目錄都是系統根目錄。

 

 

 

 

 

 

 

 

 

紅色部分是常用到的,它的意思是,所有用戶的目錄都是共享的ftp目錄,不可以切到別的目錄,包括上傳的時候,只能上傳所在目錄的文件,不能上傳別的目錄里的文件。

ls_recurse_enable=NO    #禁止用戶登陸FTP后使用"ls -R"的命令。該命令會對服務器性能造成巨大開銷。如果該項被允許,那么擋多用戶同時使用該命令時將會對該服務器造成威脅。

listen=YES  #開啟獨立進程vsftpd,不使用超級進程xinetd。設定該Vsftpd服務工作在StandAlone模式下。順便展開說明一下,所謂StandAlone模式就是該服務擁有自己的守護進程支持,在ps -A命令下我們將可用看到vsftpd的守護進程名。如果不想工作在StandAlone模式下,則可以選擇SuperDaemon模式,在該模式下 vsftpd將沒有自己的守護進程,而是由超級守護進程Xinetd全權代理,與此同時,Vsftp服務的許多功能將得不到實現。

pam_service_name=vsftpd #設定,啟用pam認證,並指定認證文件名/etc/pam.d/vsftpd。

userlist_enable=YES    #設定userlist_file中的用戶將不得使用FTP。
tcp_wrappers=YES       #設定支持TCP Wrappers。

實際操作過程:環境CENTOS 6.8

目標:實現在同一跟目錄下對admins,upload,download三個虛擬用戶的不同權限的控制。具體權限控制列表如下:

用戶名

權限說明

admins

管理員,可以上傳、下載、新建文件夾、刪除和更改文件和文件夾名。

upload

不可以下載,可以上傳、新建文件夾,但不能刪除文件和文件夾,不能重命名原有文件和文件夾;

download

只能下載,不能進行其他操作。

 

 

 

 

 

 

 

 

1、安裝vsftpd

Yum install vsftpd -y

2、添加虛擬映射用戶

Useradd –d /home/ftp123 –s /sbin/nologin

然后創建虛擬用戶和密碼

Cat >>vsuser<<eof

admins

123456

upload

123456

download

123456

eof

[root@DHCP-service vsftpd]# cat vsuser

admins

123456

upload

123456

download

123456

然后呢 安裝db4,制作vsftp的用戶認證文件,因為剛才的虛擬帳號和密碼的文本文件無法被系統帳號直接調用,需要創建用於系統認證的db文件

[root@DHCP-service vsftpd]# yum install db4

[root@DHCP-service vsftpd]#db_load -T -t hash -f /etc/vsftpd/vsuser /etc/vsftpd/vsuser.db

接着配置pam.d下的vsftpd,添加認證文件的位置

vim /etc/pam.d/vsftpd   #將文將中原來的內容改為下面的內容(記得先備份呀

auth       sufficient     /lib64/security/pam_userdb.so   db=/etc/vsftpd/vsuser

account    sufficient     /lib64/security/pam_userdb.so   db=/etc/vsftpd/vsuser

以上針對64位機器

如果是32位的話將lib64改為lib即

auth       sufficient     /lib/security/pam_userdb.so   db=/etc/vsftpd/vsuser

account    sufficient     /lib/security/pam_userdb.so   db=/etc/vsftpd/vsuser

然后就是配置vsftp了:

cd /etc/vsftpd/

[root@DHCP-service vsftpd]# vim vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=NO

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

chown_uploads=NO

xferlog_std_format=YES

chroot_local_user=YES

allow_writeable_chroot=YES   #centos 7需要添加

chroot_list_enable=NO

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

nopriv_user=ftp123

async_abor_enable=YES

ascii_upload_enable=YES

ascii_download_enable=YES

ftpd_banner=Welcome to blah FTP service ^_^

ls_recurse_enable=NO

listen=YES

local_root=/home/ftp123

guest_enable=YES

guest_username=ftp123

virtual_use_local_privs=YES

user_config_dir=/etc/vsftpd/conf

主配置文件修改完畢,配置各個虛擬用戶的權限文件

首先mkdir conf

注意:這個文件夾下的文件名一定要與我們剛開始創建的3個虛擬用戶名相對應

Cd conf/中去

Cat >>admins<<eof

write_enable=YES

download_enable=YES

eof

然后是upload用戶

Cat >>upload<<eof

virtual_use_local_privs=NO

anon_world_readable_only=NO

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

eof

最后是download用戶

Echo “anon_world_readable_only=NO” >> download

然后就是啟動vsftpd服務

[root@DHCP-service conf]# /etc/init.d/vsftpd restart

下載windows上的ftp客戶端軟件fileZilla安裝測試

經過測試完成預期目標 ^_^

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM