蘭生幽谷,不為莫服而不芳;
君子行義,不為莫知而止休。
#virtual用戶管理:passerbyA、captain和admin三個虛擬用戶
# passerbyA只能看,captain可看讀寫上傳,但不能刪除。admin全部權限
[root@shell shell]# vim myFtp.sh #!/bin/bash #----------------------------------------------------------- # File Name: myFtp.sh # Version: 1.0 # Created: 2025-05-09 01:36:21 # Author:? 網工XXX # Contact:? QQ15523232551 # Copyright(R):CQIE # Description:1.virtual用戶管理了passerbyA、captain和admin #?????????????? 三個虛擬用戶 #???????????? 2.passerbyA只能看,captain可看讀寫上傳,但不能 #?????????????? 刪除。admin全部權限 #=========================================================== #我的化妝盒 RED='\033[31m' GREEN='\033[32m' YELLOW='\033[43m' BLUE='\033[94m' RedBlink="\e[5;31m"?????? #5是閃爍,31m是紅色 UL='\033[4m'??????????? #下劃線 RESET='\033[0m'??????????? #復位 # 安裝必要組件 sudo yum install -y ftp vsftpd # 創建虛擬用戶映射的系統用戶 sudo useradd -d /home/virtual -s /sbin/nologin virtual sudo chmod 755 /home/virtual # 創建虛擬用戶數據庫文件 sudo bash -c 'cat > /etc/vsftpd/vusers.txt << EOF passerbyA passerbyA_pass captain captain_pass admin admin_pass EOF' # 生成數據庫文件 sudo db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db sudo chmod 600 /etc/vsftpd/vusers.db # 備份原始PAM文件 sudo cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak # 配置PAM認證 sudo bash -c 'cat > /etc/pam.d/vsftpd << EOF auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers EOF' # 創建虛擬用戶配置文件目錄 sudo mkdir -p /etc/vsftpd/vusers_conf # 配置passerbyA(只讀) sudo bash -c 'cat > /etc/vsftpd/vusers_conf/passerbyA << EOF anon_world_readable_only=NO write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO EOF' # 配置captain(上傳/下載/修改,不能刪除) sudo bash -c 'cat > /etc/vsftpd/vusers_conf/captain << EOF write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=NO EOF' # 配置admin(完全權限) sudo bash -c 'cat > /etc/vsftpd/vusers_conf/admin << EOF write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES EOF' # 備份原始vsftpd配置 sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak # 生成新的vsftpd配置 sudo bash -c 'cat > /etc/vsftpd/vsftpd.conf << EOF anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES listen_ipv6=NO # 虛擬用戶配置 user_config_dir=/etc/vsftpd/vusers_conf guest_enable=YES guest_username=virtual allow_writeable_chroot=YES pam_service_name=vsftpd # 被動模式設置 pasv_enable=YES pasv_min_port=50000 pasv_max_port=50010 EOF' # 設置目錄權限 sudo chown -R virtual:virtual /home/virtual sudo chmod 755 /home/virtual # 處理防火墻 sudo firewall-cmd --permanent --add-port=21/tcp sudo firewall-cmd --permanent --add-port=50000-50010/tcp sudo firewall-cmd --reload # 處理SELinux sudo setsebool -P ftpd_full_access on # 啟動服務 sudo systemctl enable vsftpd sudo systemctl restart vsftpd echo -e ?"${GREEN}安裝配置完成!${RESET}" echo -e "虛擬用戶密碼文件:/etc/vsftpd/vusers.txt (${RedBlink}請及時修改權限或刪除${RESET})" |
圖17- 1
遠端測試:
圖17- 2
圖17- 3