The following will be covered:
Reviewing current FTP settings
sa8004-1# isi ftp view Accept Timeout: 1m Allow Anon Access: No Allow Anon Upload: Yes Allow Dirlists: Yes Allow Downloads: Yes Allow Local Access: Yes Allow Writes: Yes Always Chdir Homedir: Yes Anon Chown Username: root Anon Password List: - Anon Root Path: /ifs/home/ftp Anon Umask: 0077 Ascii Mode: off Chroot Exception List: - Chroot Local Mode: none Connect Timeout: 1m Data Timeout: 5m Denied User List: - Dirlist Localtime: No Dirlist Names: hide File Create Perm: 0666 Limit Anon Passwords: No Local Root Path: - Local Umask: 0077 Server To Server: No Session Support: Yes Session Timeout: 5m User Config Dir: - FTP Service Enabled: Yes
Commonly adjusted settings
There are a few settings related to how users are routed on login that often get changed:
isi ftp modify --always-chdir-homedir=[true|false]
isi ftp modify --chroot-exception-list=["comma separated list of usernames"]
Chroot Local Mode
isi ftp modify --chroot-local-mode=['all','all-with-exceptions','none','none-with-exceptions']
chroot
is applied and how we apply it
Local Root Path
and childrenChroot Exception List
are limited to Local Root Path
and childrenLocal Root Path
Chroot Exception List
are limited to Local Root Path
and childrenisi ftp modify --local-root-path=['/ifs/ftp/path']
Default FTP behaviors
Here is how the FTP service will behave by default.
This means that only users that exist on an Auth provider will be allowed to access the cluster by FTP. The system will always start a connection by sending them to their root directories, and will then allow them to browse freely (based on permission evaluation). Since Local Root Path
is undefined, users will be routed to the path specified in their user profile. You can check that with isi auth users $username | grep Home
where $username
is replaced with the username you are checking. Here s an example with a local user:
sa8004-1# isi auth users view xavier | grep Home Home Directory: /ifs/home/xavier
In the default configuration, the user above would connect to the Isilon, be routed to /ifs/home/xavier
(regardless of path set on connection), and could then change directories to /ifs/home/
since Chroot Local Mode
is set to None.
Routing Users to a Specific Directory
By default, users connecting to the OneFS FTP service will be routed to their home directory. However customers often rather that FTP work more like a dropbox. In that case, all you have to edit the setting Local Root Path
. This will cause users to route to that path instead of their home directory. Setting the value to <blank> will reset it to home directories.
Here are examples of those commands:
# Routing to /ifs/ftp sa8004-1# isi ftp modify --local-root-path=/ifs/ftp # Restoring to default sa8004-1# isi ftp modify --local-root-path=''
Restricting Users to a Directory Tree
By default, users connecting to the OneFS FTP service are able to see the entire file system, and navigate it as allowed by their permissions (we still check username etc), however many customers prefer that their users remain restricted only to the portion of the file system relevant to them. This is accomplished with the setting Chroot Local Mode
. When that setting is applied to a user, they will only be able to navigate to or see files underneath their Root Path
. By default this is set to none, but there are 4 different applications of the setting.
Adjust this setting with isi ftp modify --chroot-local-mode=['all','all-with-exceptions','none','none-with-exceptions']
Local Root Path
and childrenChroot Exception List
are limited to Local Root Path
and childrenLocal Root Path
Chroot Exception List
are limited to Local Root Path
and childrenAdd exceptions with isi ftp modify --chroot-exception-list=["comma separated list of usernames"]
Here is an example of limiting all but one user to /ifs/ftp
. That one user will still start their connection, but will be able to see the rest of /ifs/
# Adding user to exception list sa8004-1# isi ftp modify --chroot-exception-list=xavier # Routing all logins to `/ifs/ftp` sa8004-1# isi ftp modify --local-root-path=/ifs/ftp # Limiting everyone by `xavier` to the Local Root Path sa8004-1# isi ftp modify --chroot-local-mode=all-with-exceptions
Notes
Command Reference: