SlimFTPd: Config File: Difference between revisions

no edit summary
mNo edit summary
No edit summary
Line 1: Line 1:
<span id="top"></span>
=[http://ecacoraqosy.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=
<div style="padding:0;margin:0; border-bottom:3px inset #000000">
&lt;span id=&quot;top&quot;&gt;&lt;/span&gt;
&lt;div style=&quot;padding:0;margin:0; border-bottom:3px inset #000000&quot;&gt;
{|  
{|  
| [[Image:uc_small_logo.gif | MPG UniCenter]] ||
| [[Image:uc_small_logo.gif | MPG UniCenter]] ||
Line 12: Line 13:


|}
|}
</div>
&lt;/div&gt;
{| cellpadding="2"
{| cellpadding=&quot;2&quot;
|
|
__TOC__
__TOC__
Line 30: Line 31:
Your configuration file ('''''slimftpd.conf''''') must contain these six commands, in most cases the default values are adequate.
Your configuration file ('''''slimftpd.conf''''') must contain these six commands, in most cases the default values are adequate.


{|style="background:#666666" border="0" cellpadding="4" cellspacing="1"
{|style=&quot;background:#666666&quot; border=&quot;0&quot; cellpadding=&quot;4&quot; cellspacing=&quot;1&quot;
|-style="background:#eeeeee"
|-style=&quot;background:#eeeeee&quot;
|valign="top"| BindInterface
|valign=&quot;top&quot;| BindInterface
|valign="top"| All
|valign=&quot;top&quot;| All
| Which network interface should be used to listen for incoming connections.<br>Available options are All, '''LAN''', '''WAN''', '''Local''', or you can specify an IP address.
| Which network interface should be used to listen for incoming connections.&lt;br&gt;Available options are All, '''LAN''', '''WAN''', '''Local''', or you can specify an IP address.
|-style="background:#eeeeee"
|-style=&quot;background:#eeeeee&quot;
|valign="top"| BindPort
|valign=&quot;top&quot;| BindPort
|valign="top"|  21
|valign=&quot;top&quot;|  21
| The BindPort directive specifies which TCP port should be used to listen for incoming connections.<br>The standard FTP port is '''21'''.
| The BindPort directive specifies which TCP port should be used to listen for incoming connections.&lt;br&gt;The standard FTP port is '''21'''.
|-style="background:#eeeeee"
|-style=&quot;background:#eeeeee&quot;
|valign="top"| CommandTimeout
|valign=&quot;top&quot;| CommandTimeout
|valign="top"| 300
|valign=&quot;top&quot;| 300
| The CommandTimeout directive specifies how many seconds to wait for a connected client to issue a command before dropping the connection.<br>Default is 300 (5 minutes).
| The CommandTimeout directive specifies how many seconds to wait for a connected client to issue a command before dropping the connection.&lt;br&gt;Default is 300 (5 minutes).
|-style="background:#eeeeee"
|-style=&quot;background:#eeeeee&quot;
|valign="top"| ConnectTimeout
|valign=&quot;top&quot;| ConnectTimeout
|valign="top"|  15
|valign=&quot;top&quot;|  15
|The ConnectTimeout directive specifies how many seconds to wait for a data socket to connect with a client. This value applies to both active-mode and passive-mode connections.<br> Default is 15.
|The ConnectTimeout directive specifies how many seconds to wait for a data socket to connect with a client. This value applies to both active-mode and passive-mode connections.&lt;br&gt; Default is 15.
|-style="background:#eeeeee"
|-style=&quot;background:#eeeeee&quot;
|valign="top"| MaxConnections
|valign=&quot;top&quot;| MaxConnections
|valign="top"|  20
|valign=&quot;top&quot;|  20
| The MaxConnections directive specifies an upper limit on the number of connections that may be made to the server at any one time.<br> Default is 20.
| The MaxConnections directive specifies an upper limit on the number of connections that may be made to the server at any one time.&lt;br&gt; Default is 20.
|-style="background:#eeeeee"
|-style=&quot;background:#eeeeee&quot;
|valign="top"| LookupHosts
|valign=&quot;top&quot;| LookupHosts
|valign="top"|  on
|valign=&quot;top&quot;|  on
|The LookupHosts directive tells SlimFTPd whether it should look up the corresponding host names for IP addresses when logging connections. Note that this may take slightly more network bandwidth and may cause a short delay for users during initial connection.<br> Default is On.
|The LookupHosts directive tells SlimFTPd whether it should look up the corresponding host names for IP addresses when logging connections. Note that this may take slightly more network bandwidth and may cause a short delay for users during initial connection.&lt;br&gt; Default is On.
|}
|}


Line 62: Line 63:
Below the global server variables you add user profiles. Each user profile is constructed from the following tags (commands/directives).
Below the global server variables you add user profiles. Each user profile is constructed from the following tags (commands/directives).


{|style="background:#666666" border="0" cellpadding="4" cellspacing="1"
{|style=&quot;background:#666666&quot; border=&quot;0&quot; cellpadding=&quot;4&quot; cellspacing=&quot;1&quot;
|-
|-
|style="background:#eeeeee" valign="top"| '''<nowiki><User "name"></nowiki>'''
|style=&quot;background:#eeeeee&quot; valign=&quot;top&quot;| '''&lt;nowiki&gt;&lt;User &quot;name&quot;&gt;&lt;/nowiki&gt;'''
|style="background:#ffffff" valign="top"| Opening tag for user profile. Name of user do not use spaces or any special characters<br>
|style=&quot;background:#ffffff&quot; valign=&quot;top&quot;| Opening tag for user profile. Name of user do not use spaces or any special characters&lt;br&gt;
(A name "'''anonymous'''" used with password set to '''""''', allows anyone access no authentication required.)
(A name &quot;'''anonymous'''&quot; used with password set to '''&quot;&quot;''', allows anyone access no authentication required.)
|-
|-
|style="background:#eeeeee" valign="top"| '''<nowiki></User></nowiki>'''
|style=&quot;background:#eeeeee&quot; valign=&quot;top&quot;| '''&lt;nowiki&gt;&lt;/User&gt;&lt;/nowiki&gt;'''
|style="background:#ffffff" valign="top"| Closing tag for user profile
|style=&quot;background:#ffffff&quot; valign=&quot;top&quot;| Closing tag for user profile
|-
|-
|style="background:#eeeeee" valign="top"| '''Password "value"'''
|style=&quot;background:#eeeeee&quot; valign=&quot;top&quot;| '''Password &quot;value&quot;'''
|style="background:#ffffff" valign="top"| Use the Password directive to set a password for a user. If no password is set, the user will be allowed to login without a password, however a user name is still required unless that has been set to '''anonymous''' see above ).
|style=&quot;background:#ffffff&quot; valign=&quot;top&quot;| Use the Password directive to set a password for a user. If no password is set, the user will be allowed to login without a password, however a user name is still required unless that has been set to '''anonymous''' see above ).
|-
|-
|style="background:#eeeeee" valign="top"| '''Mount&nbsp;[virtual&nbsp;file&nbsp;path][local&nbsp;file&nbsp;path]'''
|style=&quot;background:#eeeeee&quot; valign=&quot;top&quot;| '''Mount&amp;nbsp;[virtual&amp;nbsp;file&amp;nbsp;path][local&amp;nbsp;file&amp;nbsp;path]'''
|style="background:#ffffff" valign="top"| Use the Mount directive to attach a local file system path to a virtual file system path.
|style=&quot;background:#ffffff&quot; valign=&quot;top&quot;| Use the Mount directive to attach a local file system path to a virtual file system path.
|-
|-
|style="background:#eeeeee" valign="top"| '''Allow'''<br>'''Deny'''
|style=&quot;background:#eeeeee&quot; valign=&quot;top&quot;| '''Allow'''&lt;br&gt;'''Deny'''
|style="background:#ffffff" valign="top"| Allow and Deny directives to set permissions on paths in the virtual file system. Valid permission tokens are '''Read''',''' Write''', '''List''', '''Admin''', or '''All''' to indicate all four permission types.
|style=&quot;background:#ffffff&quot; valign=&quot;top&quot;| Allow and Deny directives to set permissions on paths in the virtual file system. Valid permission tokens are '''Read''',''' Write''', '''List''', '''Admin''', or '''All''' to indicate all four permission types.
|}
|}


Line 86: Line 87:
Every access to your FTP server is controlled by user accounts (profiles) these have the following format:
Every access to your FTP server is controlled by user accounts (profiles) these have the following format:


<pre>
&lt;pre&gt;
<User "[name]">
&lt;User &quot;[name]&quot;&gt;
   Password "[password]"
   Password &quot;[password]&quot;
   Mount [public virtual path] [internal local path]
   Mount [public virtual path] [internal local path]
   Allow [public virtual path] [permissions]
   Allow [public virtual path] [permissions]
   Deny [public virtual path] [permissions]
   Deny [public virtual path] [permissions]
</User>
&lt;/User&gt;
</pre>
&lt;/pre&gt;


User name and password are obvious and need no explanation however '''Mount''' '''''is all-important''''' and you need to understand how it works.
User name and password are obvious and need no explanation however '''Mount''' '''''is all-important''''' and you need to understand how it works.
Line 104: Line 105:


* '''Mount''' has the following elements:
* '''Mount''' has the following elements:
* ['''public virtual path'''] What you want a user to see.<br>&nbsp;&nbsp;&nbsp;and
* ['''public virtual path'''] What you want a user to see.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;and
* ['''internal local path'''] The real location on your system.
* ['''internal local path'''] The real location on your system.


Line 112: Line 113:
With this knowledge lets re-visit the user profile from the previous page
With this knowledge lets re-visit the user profile from the previous page


{|width="80%" style="background:#333333" cellpadding="4" cellspacing="1"
{|width=&quot;80%&quot; style=&quot;background:#333333&quot; cellpadding=&quot;4&quot; cellspacing=&quot;1&quot;
|-style="background:#eeeeee"
|-style=&quot;background:#eeeeee&quot;
|
|
# User name is “'''ric'''”
# User name is “'''ric'''”
Line 121: Line 122:
#The user is allowed full access to '''all''' the '''folders''' and '''files''' as displayed in the '''FTP root folder'''.
#The user is allowed full access to '''all''' the '''folders''' and '''files''' as displayed in the '''FTP root folder'''.
|
|
'''<User "ric">'''<br>
'''&lt;User &quot;ric&quot;&gt;'''&lt;br&gt;
'''&nbsp;&nbsp;Password "unicenter"'''<br>
'''&amp;nbsp;&amp;nbsp;Password &quot;unicenter&quot;'''&lt;br&gt;
'''&nbsp;&nbsp;Mount&nbsp;/&nbsp;C:/uc_slimftpd_tutorial'''<br>
'''&amp;nbsp;&amp;nbsp;Mount&amp;nbsp;/&amp;nbsp;C:/uc_slimftpd_tutorial'''&lt;br&gt;
'''&nbsp;&nbsp;Allow / All'''<br>
'''&amp;nbsp;&amp;nbsp;Allow / All'''&lt;br&gt;
'''</User>'''
'''&lt;/User&gt;'''
|}
|}


Line 136: Line 137:
After making configuration file changes '''stop''' (uc_kill_process.bat) and '''restart''' (SlimFTPd.exe) your FTP server for the changes to take place.
After making configuration file changes '''stop''' (uc_kill_process.bat) and '''restart''' (SlimFTPd.exe) your FTP server for the changes to take place.


After each example restart your browser, this will ensure you are challenged for a name and password. You can use a client for testing or use a browser however remember to type the following when using a browser '''<nowiki>ftp://localhost</nowiki>'''
After each example restart your browser, this will ensure you are challenged for a name and password. You can use a client for testing or use a browser however remember to type the following when using a browser '''&lt;nowiki&gt;ftp://localhost&lt;/nowiki&gt;'''


'''''[[#top | Top]]'''''
'''''[[#top | Top]]'''''
Line 142: Line 143:
I have two friends that are very trustworthy, they would like to upload and download files to their folders hosted on the FTP server. Open the configuration file and add a suitable block for each person as show below
I have two friends that are very trustworthy, they would like to upload and download files to their folders hosted on the FTP server. Open the configuration file and add a suitable block for each person as show below


{|width="80%" style="background:#333333" cellpadding="4" cellspacing="1"
{|width=&quot;80%&quot; style=&quot;background:#333333&quot; cellpadding=&quot;4&quot; cellspacing=&quot;1&quot;
|-
|-
|style="background:#ffffff"|
|style=&quot;background:#ffffff&quot;|
I have top level access hence can check if they are abusing their privilege of being able to upload to the server.
I have top level access hence can check if they are abusing their privilege of being able to upload to the server.
|style="background:#eeeeee"|
|style=&quot;background:#eeeeee&quot;|
<User "ric">
&lt;User &quot;ric&quot;&gt;
&nbsp;&nbsp;Password "unicenter"<br>
&amp;nbsp;&amp;nbsp;Password &quot;unicenter&quot;&lt;br&gt;
&nbsp;&nbsp;Mount / C:/uc_slimftpd_tutorial<br>
&amp;nbsp;&amp;nbsp;Mount / C:/uc_slimftpd_tutorial&lt;br&gt;
&nbsp;&nbsp;allow / All<br>
&amp;nbsp;&amp;nbsp;allow / All&lt;br&gt;
</User>
&lt;/User&gt;
|-
|-
|style="background:#ffffff"|
|style=&quot;background:#ffffff&quot;|
Save and login to Dave's account. You will see three files. You can delete, download these files. Try uploading files.
Save and login to Dave's account. You will see three files. You can delete, download these files. Try uploading files.
|style="background:#eeeeee"|
|style=&quot;background:#eeeeee&quot;|
<User "'''dave'''"><br>
&lt;User &quot;'''dave'''&quot;&gt;&lt;br&gt;
&nbsp;&nbsp;Password "'''dave123'''"<br>
&amp;nbsp;&amp;nbsp;Password &quot;'''dave123'''&quot;&lt;br&gt;
&nbsp;&nbsp;Mount&nbsp;/&nbsp;'''C:/uc_slimftpd_tutorial/dave'''&nbsp;&nbsp;<br>
&amp;nbsp;&amp;nbsp;Mount&amp;nbsp;/&amp;nbsp;'''C:/uc_slimftpd_tutorial/dave'''&amp;nbsp;&amp;nbsp;&lt;br&gt;
&nbsp;&nbsp;Allow / All<br>
&amp;nbsp;&amp;nbsp;Allow / All&lt;br&gt;
</User>
&lt;/User&gt;
|-
|-
|style="background:#ffffff"|
|style=&quot;background:#ffffff&quot;|
Repeat the same for Johns's account. Generally have a play with FTP'ing.
Repeat the same for Johns's account. Generally have a play with FTP'ing.
|style="background:#eeeeee"|
|style=&quot;background:#eeeeee&quot;|
<User "'''john'''"><br>
&lt;User &quot;'''john'''&quot;&gt;&lt;br&gt;
&nbsp;&nbsp;Password "'''john123'''"<br>
&amp;nbsp;&amp;nbsp;Password &quot;'''john123'''&quot;&lt;br&gt;
&nbsp;&nbsp;Mount /  '''C:/uc_slimftpd_tutorial/john'''<br>
&amp;nbsp;&amp;nbsp;Mount /  '''C:/uc_slimftpd_tutorial/john'''&lt;br&gt;
&nbsp;&nbsp;Allow / All<br>
&amp;nbsp;&amp;nbsp;Allow / All&lt;br&gt;
</User>
&lt;/User&gt;
|}
|}


Line 177: Line 178:
You have set-up three user accounts (Virtual Hosts) in Apache's configuration file and have their corresponding web sites located in the www folder under the following three sub-folder names user1, user2 and user3. They each need to use FTP to upload their site. All you need to do is add three new user profiles to the bottom of the FTP configuration file as follows.
You have set-up three user accounts (Virtual Hosts) in Apache's configuration file and have their corresponding web sites located in the www folder under the following three sub-folder names user1, user2 and user3. They each need to use FTP to upload their site. All you need to do is add three new user profiles to the bottom of the FTP configuration file as follows.


{|width="80%" style="background:#333333" cellpadding="4" cellspacing="1"
{|width=&quot;80%&quot; style=&quot;background:#333333&quot; cellpadding=&quot;4&quot; cellspacing=&quot;1&quot;
|-
|-
|style="background:#ffffff"|
|style=&quot;background:#ffffff&quot;|
All three sites map to the appropriate folder in www.
All three sites map to the appropriate folder in www.
|style="background:#eeeeee"|
|style=&quot;background:#eeeeee&quot;|
<User "dave_user1"><br>
&lt;User &quot;dave_user1&quot;&gt;&lt;br&gt;
&nbsp;&nbsp;Password "fish123"<br>
&amp;nbsp;&amp;nbsp;Password &quot;fish123&quot;&lt;br&gt;
&nbsp;&nbsp;Mount&nbsp;/&nbsp;W:/www/user1/&nbsp;&nbsp;<br>
&amp;nbsp;&amp;nbsp;Mount&amp;nbsp;/&amp;nbsp;W:/www/user1/&amp;nbsp;&amp;nbsp;&lt;br&gt;
&nbsp;&nbsp;Allow / All<br>
&amp;nbsp;&amp;nbsp;Allow / All&lt;br&gt;
</User>
&lt;/User&gt;
|-
|-
|style="background:#ffffff"|
|style=&quot;background:#ffffff&quot;|
The most difficult part is the choice of user names and passwords.
The most difficult part is the choice of user names and passwords.
|style="background:#eeeeee"|
|style=&quot;background:#eeeeee&quot;|
<User "john_doe"><br>
&lt;User &quot;john_doe&quot;&gt;&lt;br&gt;
&nbsp;&nbsp;Password "dead123"<br>
&amp;nbsp;&amp;nbsp;Password &quot;dead123&quot;&lt;br&gt;
&nbsp;&nbsp;Mount / W:/www/user2/<br>
&amp;nbsp;&amp;nbsp;Mount / W:/www/user2/&lt;br&gt;
&nbsp;&nbsp;Allow / All<br>
&amp;nbsp;&amp;nbsp;Allow / All&lt;br&gt;
</User>
&lt;/User&gt;
|-
|-
|style="background:#ffffff"|
|style=&quot;background:#ffffff&quot;|
Do not use their real names make sure the names and passwords are different and long and contain a mix of numeric and alpha characters.
Do not use their real names make sure the names and passwords are different and long and contain a mix of numeric and alpha characters.
|style="background:#eeeeee"|
|style=&quot;background:#eeeeee&quot;|
<User "football_team"><br>
&lt;User &quot;football_team&quot;&gt;&lt;br&gt;
&nbsp;&nbsp;Password "lost123"<br>
&amp;nbsp;&amp;nbsp;Password &quot;lost123&quot;&lt;br&gt;
&nbsp;&nbsp;Mount / W:/www/user3/<br>
&amp;nbsp;&amp;nbsp;Mount / W:/www/user3/&lt;br&gt;
&nbsp;&nbsp;Allow / All<br>
&amp;nbsp;&amp;nbsp;Allow / All&lt;br&gt;
</User>
&lt;/User&gt;
|}
|}


Line 212: Line 213:
John and Dave would like to have access to slimFTPd’s original unzipped files. For this I will create a virtual folder in the server’s root named “slim” and map folder slimFTPd to it. Notice I am not mapping the folder “original” because I don’t want them to have access to the zip file that it contains. Dave thinks he’s an artist! Well he likes to write over other peoples file hence will restrict him to read access only.
John and Dave would like to have access to slimFTPd’s original unzipped files. For this I will create a virtual folder in the server’s root named “slim” and map folder slimFTPd to it. Notice I am not mapping the folder “original” because I don’t want them to have access to the zip file that it contains. Dave thinks he’s an artist! Well he likes to write over other peoples file hence will restrict him to read access only.


{|width="80%" style="background:#333333" cellpadding="4" cellspacing="1"
{|width=&quot;80%&quot; style=&quot;background:#333333&quot; cellpadding=&quot;4&quot; cellspacing=&quot;1&quot;
|-
|-
|style="background:#ffffff"|
|style=&quot;background:#ffffff&quot;|
I have top level access hence can check if anyone is abusing their privileges.
I have top level access hence can check if anyone is abusing their privileges.
|style="background:#eeeeee"|
|style=&quot;background:#eeeeee&quot;|
<User "ric"><br>
&lt;User &quot;ric&quot;&gt;&lt;br&gt;
&nbsp;&nbsp;Password "unicenter"<br>
&amp;nbsp;&amp;nbsp;Password &quot;unicenter&quot;&lt;br&gt;
&nbsp;&nbsp;Mount / C:/uc_slimftpd_tutorial<br>
&amp;nbsp;&amp;nbsp;Mount / C:/uc_slimftpd_tutorial&lt;br&gt;
&nbsp;&nbsp;Allow / All<br>
&amp;nbsp;&amp;nbsp;Allow / All&lt;br&gt;
</User>
&lt;/User&gt;
|-
|-
|style="background:#ffffff"|
|style=&quot;background:#ffffff&quot;|
First we create a virtual folder in root named "'''slim'''" and them map the real folder to it.
First we create a virtual folder in root named &quot;'''slim'''&quot; and them map the real folder to it.


All privileges are removed "'''Deny /slim All'''" and then '''allow''' Dave to '''Read''' and '''List''' the folder content.
All privileges are removed &quot;'''Deny /slim All'''&quot; and then '''allow''' Dave to '''Read''' and '''List''' the folder content.
|style="background:#eeeeee"|
|style=&quot;background:#eeeeee&quot;|
<User "dave"><br>
&lt;User &quot;dave&quot;&gt;&lt;br&gt;
&nbsp;&nbsp;Password "dave123"<br>
&amp;nbsp;&amp;nbsp;Password &quot;dave123&quot;&lt;br&gt;
&nbsp;&nbsp;Mount / C:/uc_slimftpd_tutorial/dave<br>
&amp;nbsp;&amp;nbsp;Mount / C:/uc_slimftpd_tutorial/dave&lt;br&gt;
&nbsp;&nbsp;Allow / All
&amp;nbsp;&amp;nbsp;Allow / All
'''&nbsp;&nbsp;Mount&nbsp;/slim&nbsp;C:/uc_slimftpd_tutorial/original/slimftpd&nbsp;'''<br>
'''&amp;nbsp;&amp;nbsp;Mount&amp;nbsp;/slim&amp;nbsp;C:/uc_slimftpd_tutorial/original/slimftpd&amp;nbsp;'''&lt;br&gt;
'''&nbsp;&nbsp;Deny /slim All'''<br>
'''&amp;nbsp;&amp;nbsp;Deny /slim All'''&lt;br&gt;
'''&nbsp;&nbsp;Allow /slim Read List'''<br>
'''&amp;nbsp;&amp;nbsp;Allow /slim Read List'''&lt;br&gt;
</User>
&lt;/User&gt;
|-
|-
|style="background:#ffffff"|
|style=&quot;background:#ffffff&quot;|
John is given access with no restrictions.
John is given access with no restrictions.


Test this configuration in your browser or FTP client.
Test this configuration in your browser or FTP client.


When both accounts are accessed a new folder "slim" will be seen. John can add new material if he wishes however Dave the rave cannot.
When both accounts are accessed a new folder &quot;slim&quot; will be seen. John can add new material if he wishes however Dave the rave cannot.
|style="background:#eeeeee"|
|style=&quot;background:#eeeeee&quot;|
<User "john"><br>
&lt;User &quot;john&quot;&gt;&lt;br&gt;
&nbsp;&nbsp;Password "john123"<br>
&amp;nbsp;&amp;nbsp;Password &quot;john123&quot;&lt;br&gt;
&nbsp;&nbsp;Mount / C:/uc_slimftpd_tutorial/john<br>
&amp;nbsp;&amp;nbsp;Mount / C:/uc_slimftpd_tutorial/john&lt;br&gt;
'''&nbsp;&nbsp;Mount /slim C:/uc_slimftpd_tutorial/original/slimftpd'''<br>
'''&amp;nbsp;&amp;nbsp;Mount /slim C:/uc_slimftpd_tutorial/original/slimftpd'''&lt;br&gt;
&nbsp;&nbsp;Allow / All<br>
&amp;nbsp;&amp;nbsp;Allow / All&lt;br&gt;
</User>
&lt;/User&gt;
|}
|}


Line 261: Line 262:
This type of scenario requires only one user profile:  
This type of scenario requires only one user profile:  


{|width="80%" style="background:#333333" cellpadding="4" cellspacing="1"
{|width=&quot;80%&quot; style=&quot;background:#333333&quot; cellpadding=&quot;4&quot; cellspacing=&quot;1&quot;
|-
|-
|style="background:#ffffff"|
|style=&quot;background:#ffffff&quot;|
All sub-folders in FTP root inherit the server root's permissions:
All sub-folders in FTP root inherit the server root's permissions:


Line 269: Line 270:
# Explicitly grant '''Read''' and '''List''' to '''root'''.
# Explicitly grant '''Read''' and '''List''' to '''root'''.
# These permissions are passed on to all sub-folders hence we need to explicitly grant '''Write''' to the '''upload''' folder.
# These permissions are passed on to all sub-folders hence we need to explicitly grant '''Write''' to the '''upload''' folder.
|style="background:#eeeeee"|
|style=&quot;background:#eeeeee&quot;|
<User "family_and_friends"><br>
&lt;User &quot;family_and_friends&quot;&gt;&lt;br&gt;
&nbsp;&nbsp;Password "all123"<br>
&amp;nbsp;&amp;nbsp;Password &quot;all123&quot;&lt;br&gt;
&nbsp;&nbsp;Mount /upload e:/personal/exchange/<br>
&amp;nbsp;&amp;nbsp;Mount /upload e:/personal/exchange/&lt;br&gt;
&nbsp;&nbsp;Mount /download c:/personal/area/images/<br>
&amp;nbsp;&amp;nbsp;Mount /download c:/personal/area/images/&lt;br&gt;
&nbsp;&nbsp;Deny / All<br>
&amp;nbsp;&amp;nbsp;Deny / All&lt;br&gt;
&nbsp;&nbsp;Allow / Read List<br>
&amp;nbsp;&amp;nbsp;Allow / Read List&lt;br&gt;
&nbsp;&nbsp;Allow /upload Write<br>
&amp;nbsp;&amp;nbsp;Allow /upload Write&lt;br&gt;
</User>
&lt;/User&gt;
|}
|}


322

edits