要在 CentOS 7 上使用 vsftpd 限制用戶目錄,請按照以下步驟操作:
sudo yum install vsftpd
sudo yum install vsftpd-mysql
sudo mysql -u root -p
在 MySQL 提示符下,執行以下命令:
CREATE DATABASE ftpusers;
CREATE USER 'ftpuser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON ftpusers.* TO 'ftpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
將 your_password
替換為您想要設置的密碼。
sudo useradd -m ftpuser -d /home/ftpuser -s /sbin/nologin
將 /home/ftpuser
替換為您想要設置的目錄路徑。
sudo mysql -u root -p ftpusers -e "INSERT INTO users (username, password, homedir, shell) VALUES ('ftpuser', 'your_password', '/home/ftpuser', '/sbin/nologin');"
將 your_password
替換為您在第 2 步中設置的密碼。
/etc/vsftpd/vsftpd.conf
文件,取消以下行的注釋,并填寫正確的數據庫連接信息:mysql_enable=YES
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
/etc/vsftpd/user_list
文件中添加允許和拒絕的用戶。如果文件不存在,請創建一個。使用以下命令添加用戶:sudo echo "ftpuser" >> /etc/vsftpd/user_list
sudo chmod 644 /etc/vsftpd/user_list
如果您想要拒絕某個用戶訪問 FTP 服務器,只需在 user_list
文件中添加該用戶的用戶名,無需添加密碼。
sudo systemctl restart vsftpd
現在,您已經成功配置了 CentOS 7 上的 vsftpd,限制了用戶目錄。只有 ftpuser
可以訪問其主目錄(在本例中為 /home/ftpuser
),并且無法訪問其他用戶的目錄或系統目錄。