= FTP server = Ref [https://linuxhint.com/setup-vsftpd-ftp-server-on-debian10/ here] 1. install vsftp {{{ $ apt install vsftpd }}} 2. cp config to backup {{{ $ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig }}} 3. edit config /etc/vsftpd.conf {{{ listen=YES listen_ipv6=NO connect_from_port_20=YES anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES allow_writeable_chroot=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd pasv_enable=YES pasv_min_port=40000 pasv_max_port=45000 userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO }}} 4. Add the user in existing Linux user to the allowed FTP users list: in ex. allow user '''demo''' {{{ $ echo "demo" | tee -a /etc/vsftpd.userlist }}} 5. restart /etc/init.d/vsftpd restart or systemctl restart vsftpd == FTP server with pyftpdlib == 1. We need to install pyftpdlib {{{ krit mez NetProg$ dpkg -l | grep pyftpd ii python3-pyftpdlib 1.5.7-3 all Python FTP server library }}} 2. Start '''python3 -m pyftpdlib -h''' to check option {{{ krit mez NetProg$ python3 -m pyftpdlib -u demo -P test [I 2024-02-15 14:53:57] concurrency model: async [I 2024-02-15 14:53:57] masquerade (NAT) address: None [I 2024-02-15 14:53:57] passive ports: None [I 2024-02-15 14:53:57] >>> starting FTP server on 0.0.0.0:2121, pid=2026 <<< [I 2024-02-15 14:54:16] 127.0.0.1:45522-[] FTP session opened (connect) [I 2024-02-15 14:54:25] 127.0.0.1:45522-[demo] USER 'demo' logged in. }}}