User Tools

Site Tools


ftp-install

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ftp-install [2020/10/26 16:05] gwsadminftp-install [2023/05/17 22:52] (current) – external edit 127.0.0.1
Line 4: Line 4:
  
 <code language-bash> <code language-bash>
-'sudo apt update && sudo apt install vsftpd+sudo apt update && sudo apt install vsftpd
  
  
Line 82: Line 82:
   * Paste in the following   * Paste in the following
  
-<code pre-only+<code bash
-'listen=NO+listen=NO
 listen_ipv6=YES listen_ipv6=YES
 anonymous_enable=NO anonymous_enable=NO
Line 99: Line 99:
 pasv_min_port=40000 pasv_min_port=40000
 pasv_max_port=50000 pasv_max_port=50000
 +allow_writeable_chroot=YES
  
 </code> </code>
Line 106: Line 106:
   * Restart vsftpd   * Restart vsftpd
  
-<code language-bash>sudo systemctl restart vsftpd</code>+<code language-bash> 
 +sudo systemctl restart vsftpd 
 + 
 + 
 +</code> 
 + 
 +Now, if this was purely to just upload files we can stop here, however, normally you want to FTP a site that is for the web, so we need to be able to have the FTP user/group work in tandem with the www-data user/group. 
 + 
 +So, here is what is needed: 
 + 
 +  * Create a new group (www-pub) and add the users to that group 
 + 
 +<code bash> 
 +sudo groupadd www-pub 
 + 
 + 
 +</code> 
 + 
 +  * Add FTP user AND www-data to the group 
 + 
 +<code bash> 
 +usermod -a -G www-pub ftpuser 
 + 
 +usermod -a -G www-pub www-data 
 + 
 + 
 +</code> 
 + 
 +  * Check that the users are part of all groups 
 + 
 +<code bash> 
 +sudo groups ftpuser 
 + 
 +sudo groups www-data 
 + 
 + 
 +</code> 
 + 
 +  * Change ownership of everything under the web directory 
 + 
 +<code bash> 
 +sudo chown -R root:www-pub /where/your/web/directory/is 
 + 
 + 
 +</code> 
 + 
 +  * Then change the permissions (or certain web sites won't work - such as NextCloud or WHMCS) 
 + 
 +<code bash> 
 +sudo chmod 2775 /where/your/web/directory/is 
 + 
 + 
 +</code> 
 + 
 +  * In detail, this is what each number is doing://2=set group id, 7=rwx for owner (root), 7=rwx for group (www-pub), 5=rx for world (including nginx www-data user)// 
 + 
 +**Then you should be able to FTP to a site without changing permissions all over the place!**
  
  
ftp-install.1603728306.txt.gz · Last modified: 2023/05/17 22:52 (external edit)