Hãy thử với hướng dẫn này. Có lẽ sẽ làm việc cho Bạn.
Làm thế nào để làm nó
Cài đặt vsftpd và thư viện PAM
Chỉnh sửa /etc/vsftpd.conf
và/etc/pam.d/vsftpd
Tạo tài khoản người dùng với các thư mục tùy chỉnh (ví dụ: in / var / www /)
Đặt thư mục chính xác chmod
vàchown
Tạo người dùng quản trị với toàn quyền truy cập vào máy chủ
- Cài đặt
vsftpd
(FTP Deamon rất an toàn) và libpam-pwdfile
để tạo người dùng ảo
Tôi muốn tạo người dùng FTP nhưng tôi không muốn thêm người dùng unix cục bộ (không có quyền truy cập shell, không có thư mục chính, v.v.). Một PAM (Mô-đun xác thực có thể cắm) sẽ giúp bạn tạo người dùng ảo.
sudo apt-get install vsftpd libpam-pwdfile
- Chỉnh sửa
vsftpd.conf
Trước tiên, bạn cần sao lưu tập tin gốc
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
Sau đó tạo một cái mới
sudo vim /etc/vsftpd.conf
Sao chép và dán các dòng sau. Tệp CHỈ nên chứa các dòng này:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- Đăng ký người dùng ảo
Để đăng ký người dùng bạn sử dụng htpasswd
, vì vậy tôi giả sử bạn đã apache2
làm việc trên máy chủ của mình. Tạo một vsftpd
thư mục sau đó đặt các tập tin cấu hình trong đó.
sudo mkdir /etc/vsftpd
sau đó
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c có nghĩa là chúng tôi sẽ tạo tệp nếu nó chưa tồn tại -d buộc MD5, bạn cần nó trên ubfox 12.04, chỉ cần sử dụng nó luôn
Lệnh sẽ nhắc nhập mật khẩu.
Nếu bạn muốn thêm người dùng mới sau đó:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- Định cấu hình PAM trong
/etc/pam.d/vsftpd
Một lần nữa, bạn cần sao lưu tập tin gốc
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
và tạo một cái mới
sudo vim /etc/pam.d/vsftpd
Sao chép và dán 2 dòng này (đây phải là nội dung duy nhất). Tôi chỉ nhấn mạnh 2 dòng này, tôi đã lãng phí rất nhiều thời gian để giữ bản gốc và chỉ thêm những dòng này.
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- Tạo người dùng cục bộ mà không cần truy cập shell
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Bạn có thể kiểm tra xem nó đã được tạo bằng lệnh id: id vsftpd. Chúng tôi xác định người dùng có vỏ / bin / false vì tham số check_shell (ngay cả khi bạn không sử dụng nó). Khi người dùng cuối kết nối với máy chủ FTP, họ sẽ được sử dụng cho quyền và quyền sở hữu:
chmod
và chown
.
- Khởi động lại
vsftpd
Cách phổ biến là sử dụng init.d như tất cả các deamon
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- Tạo thư mục
Theo cấu hình, tất cả người dùng sẽ được đặt vào thư mục này: / var / www / user1.
Bạn cần tạo chúng với các quyền cụ thể: thư mục gốc không thể ghi được!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
Lưu ý: người dùng không thể tạo tập tin hoặc thư mục trong thư mục gốc.
Trong vsftpd.conf
chúng tôi có chroot_local_user=YES
để người dùng không thể thấy bất cứ điều gì bên ngoài thư mục của mình. Đối với anh ta, máy chủ trông như thế này:
Vì vậy, chỉ cần chạy các lệnh sau:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
Các /var/www/user1
thư mục ĐÃ tồn tại hoặc kết nối sẽ thất bại.
Ngay bây giờ bạn có thể thử kết nối với FTP của mình
- Tạo người dùng Quản trị viên để truy cập toàn bộ máy chủ
Để tạo người dùng quản trị, chúng tôi cần đăng ký người dùng mới htpasswd
.
Trước khi chúng tôi làm như vậy, tôi sẽ khuyên bạn nên kiểm tra /etc/ftpusers
tệp xác định người dùng nhất định không được phép kết nối với ftp. Tôi nghĩ rằng nó chỉ dành cho người dùng cục bộ và không phải người dùng ảo nhưng chỉ trong trường hợp không chọn tên có trong tệp này.
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
Bây giờ chúng ta cần thêm một dòng mới vào /etc/vsftpd.conf
chroot_list_enable=YES
Điều này có nghĩa là người dùng của bạn sẽ được đặt vào thư mục của họ (như một nhà tù) người dùng EXCEPT trong / etc /
vsftpd.chroot_list
Hãy tạo tập tin này và thêm người dùng của chúng tôi, tập tin này là một dòng đơn giản có chứa điều đó. Thêm một người dùng trên mỗi dòng. Điều đó có nghĩa là bạn KHÔNG cần tạo một /var/www/theadmin
thư mục, người dùng sẽ đăng nhập và bắt đầu /home/vsftpd
.
Khởi động lại máy chủ và bạn đã hoàn tất!