GLOBUS-GRIDFTP-SER(8)
hey bestie π you've landed on GLOBUS-GRIDFTP-SER(8), fresh out of the Grid Community Toolkit Manual, and it is so much server. buckle up, we're doing this in three parts and this is part one π
β¨ NAME β¨
globus-gridftp-server β the Globus GridFTP server daemon. that's it, that's the girl. π
β¨ SYNOPSIS β¨
globus-gridftp-server OPTIONS
β¨ DESCRIPTION β¨
okay so globus-gridftp-server is an ftp server, but not a basic one β she supports the GridFTP protocol extensions, and that means strong authentication, parallel data transfers, and parallel data layouts. all three. main character behaviour, no cap. π
β¨
β¨ OPTIONS β¨
the list below is every command-line option the server takes, and also the name of the configuration file entry that implements that same option, because they're twins basically. π―
π«Ά heads up: any boolean option can be negated on the command line by putting-no-or-nin front of it. example:-no-casor-nf. so yes, you can say "not that" and she'll listen.
πΈ Informational Options
-h,-helpβ show usage information and exit. config file name:help. default:FALSE.-hh,-longhelpβ show more usage information and exit. the deluxe version. config file name:longhelp. default:FALSE.-v,-versionβ show version info for the server and exit. config file name:version. default:FALSE.-V,-versionsβ show version info for all loaded globus libraries and exit. every single one. config file name:versions. default:FALSE.
π¦ Modes of Operation
-i,-inetdβ run under an inetd service. config file name:inetd. default:FALSE.-s,-daemonβ run as a daemon. all connections will fork off a new process and setuid if allowed. config file name:daemon. default:TRUE.-S,-detachβ run as a background daemon detached from any controlling terminals. she's free, she's independent π config file name:detach. default:FALSE.-sshβ run over a connected ssh session. config file name:ssh. default:FALSE.-execstring β for statically compiled or non-GLOBUS_LOCATIONstandard binary locations, specify the full path of the server binary right here. only needed when run in daemon mode. config file name:exec.-chdirβ change directory when the server starts. this will change directory to the dir specified by thechdir_tooption. config file name:chdir. default:TRUE.-chdir-tostring β directory to chdir to after starting. will use/if not set. note that this is the directory of the process, not the client's home directory. config file name:chdir_to.-threadsnumber β enable threaded operation and set the number of threads. the default is0, which is non-threaded. when threading is required, a thread count of1or2should be sufficient. config file name:threads.-f,-forkβ server will fork for each new connection. disabling this option is only recommended when debugging. note that non-forked servers running as root will only accept a single connection, and then exit. config file name:fork. default:TRUE.-1,-singleβ exit after a single connection. one and done, iconic. config file name:single. default:FALSE.-chroot-pathstring β path to become the new root after authentication. this path must contain a valid certificate structure,/etc/passwd, and/etc/group. the commandglobus-gridftp-server-setup-chrootcan help create a suitable directory structure. config file name:chroot_path.
π Authentication, Authorization, and Security Options
-auth-levelnumber β add levels together to use more than one. if not set, uses level 2 for front ends and level 1 for data nodes. note that levels 2 and 4 imply level 1 as well.0= disables all authorization checks.1= authorize identity.2= authorize all file/resource accesses.4= disable changing process uid to authenticated user (no setuid) β DO NOT use this when the process is started as root.
config file name: auth_level.
-process-userstring β user to setuid to upon login for all connections. only applies when running as root. config file name:process_user.-process-groupstring β group to setgid to upon login for all connections. if unset, the default group ofprocess_userwill be used. config file name:process_group.-ipc-allow-fromstring β only allow connections from these source ip addresses. specify a comma separated list of ip address fragments. a match is any ip address that starts with the specified fragment. example:192.168.1.will match and allow a connection from192.168.1.45. note that if this option is used, any address not specifically allowed will be denied. config file name:ipc_allow_from.-ipc-deny-fromstring β deny connections from these source ip addresses. specify a comma separated list of ip address fragments. a match is any ip address that starts with the specified fragment. example:192.168.2.will match and deny a connection from192.168.2.45. config file name:ipc_deny_from.-allow-fromstring β only allow connections from these source ip addresses. specify a comma separated list of ip address fragments. a match is any ip address that starts with the specified fragment. example:192.168.1.will match and allow a connection from192.168.1.45. note that if this option is used, any address not specifically allowed will be denied. config file name:allow_from.-deny-fromstring β deny connections from these source ip addresses. specify a comma separated list of ip address fragments. a match is any ip address that starts with the specified fragment. example:192.168.2.will match and deny a connection from192.168.2.45. config file name:deny_from.-encrypt-dataβ require encrypted data channels. this will cause an error and prevent all transfers in which the client does not request an authenticated and encrypted data channel. no exceptions bestie π config file name:encrypt_data. default:FALSE.-si,-secure-ipcβ use GSI security on the ipc channel. config file name:secure_ipc. default:TRUE.-iastring,-ipc-auth-modestring β set GSI authorization mode for the ipc connection. options are:none,host,selforsubject:[subject]. config file name:ipc_auth_mode. default:host.-aa,-allow-anonymousβ allow clear text anonymous access. if the server is running as root,anonymous_usermust also be set. disables ipc security. config file name:allow_anonymous. default:FALSE.-anonymous-names-allowedstring β comma separated list of names to treat as anonymous users when allowing anonymous access. if not set, the default names ofanonymousandftpwill be allowed. use*to allow any username. config file name:anonymous_names_allowed.-anonymous-userstring β user to setuid to for an anonymous connection. only applies when running as root. config file name:anonymous_user.-anonymous-groupstring β group to setgid to for an anonymous connection. if unset, the default group ofanonymous_userwill be used. config file name:anonymous_group.-sharing-dnstring β allow sharing when using the supplied DN. a client connected with these credentials will be able to access any user for which sharing is enabled. config file name:sharing_dn.-sharing-state-dirstring β full path to a directory that will contain files used by GridFTP to control sharing access for individual local accounts. the special variables$HOMEand$USERcan be used to create a dynamic path that is unique to each local account. this path must be writable by the associated account. the default path is$HOME/.globus/sharing/. this must refer to a path on the filesystem, not a path that is only accessible via a DSI plugin. config file name:sharing_state_dir.-sharing-controlβ allow a local user account to control its own sharing access via special GridFTP client commands. the user account must have filesystem write access to the sharing state dir. config file name:sharing_control. default:TRUE.-sharing-rpstring β sharing specific path restrictions. this completely replaces the normal path restrictions (-rp) when an account is being shared by asharing-dnlogin. follows normal path restriction semantics. config file name:sharing_rp.-sharing-users-allowstring β comma separated list of usernames that are allowed to share unless matched in the user deny lists. if this list is set, users that are not included will be denied unless matched in the group allow list. config file name:sharing_users_allow.-sharing-users-denystring β comma separated list of usernames that are denied sharing even if matched in the user or group allow lists. config file name:sharing_users_deny.-sharing-groups-allowstring β a comma separated list of groups whose members are allowed to share, unless they got matched in the user or group deny lists first. Bestie, heads up: if you set this list at all, groups that aren't on it get denied unless they're matched in the user allow list. So it's an exclusive club, fr fr.
This option can also be set in the configuration file as sharing_groups_allow.
-sharing-groups-denystring β comma separated list of groups whose members will be denied sharing, unless matched in the user allow list. π
This option can also be set in the configuration file as sharing_groups_deny.
-allow-rootβ let clients get mapped to the root account. Yeah. The root account. π
This option can also be set in the configuration file as allow_root. The default value of this option is FALSE.
-allow-disabled-loginβ skip the check on whether a user's system account is disabled before letting them log in.
This option can also be set in the configuration file as allow_disabled_login. The default value of this option is FALSE.
-password-filestring β turn on clear text access and authenticate users against this/etc/passwdformatted file.
This option can also be set in the configuration file as pw_file.
-connections-maxnumber β the max concurrent connections allowed. Only applies when you're running in daemon mode. Unlimited if you don't set it. β¨
This option can also be set in the configuration file as connections_max.
-connections-disabledβ disable ALL new connections. In daemon mode, send aSIGHUPto the server process after you change the config file so you don't mess with the connections that are already going.
This option can also be set in the configuration file as connections_disabled. The default value of this option is FALSE.
-offline-msgstring β a custom message shown to clients when the server is offline, like via theconnections_disabledorconnections_max = 0options.
This option can also be set in the configuration file as offline_msg.
-disable-command-liststring β a comma separated list of client commands that will be disabled. Gone. Blocked. π«
This option can also be set in the configuration file as disable_command_list.
-authz-callouts,-casβ enable the GSI authorization callout framework, for callouts such as CAS.
This option can also be set in the configuration file as cas. The default value of this option is TRUE.
-use-home-dirsβ set the starting directory to the authenticated user's home dir. Turning this off is literally the same as setting-home-dir /.
This option can also be set in the configuration file as use_home_dirs. The default value of this option is TRUE.
-home-dirstring β set a path to override the system defined home/starting directory for authenticated users. The special variable strings$USERand$HOMEmay be used. The authenticated username gets substituted for$USER, and the user's real home dir gets substituted for$HOME. Be sure to escape the$character if you're using these on the command line, bestie. π
This option can also be set in the configuration file as home_dir.
-rpstring,-restrict-pathsstring β a comma separated list of full paths that clients may access. Each path may be prefixed byRand/orW, denoting read or write access β otherwise full access is granted. If a given path is a directory, all contents and subdirectories get the same access. Order of paths does not matter β the permissions on the longest matching path will apply. The special character~will be replaced by the authenticated user's home directory, or the-home-diroption, if used. Note that if the home directory is not accessible,\~will be set to/. By default all paths are allowed, and access control is handled by the OS. In a striped or split process configuration, this should be set on both the frontend and data nodes. π
This option can also be set in the configuration file as restrict_paths.
-rp-follow-symlinksβ don't verify that a symlink points to an allowed path before following it. By default, symlinks are followed only when they point to an allowed path. Enable this and symlinks get followed even if they point to a path that's otherwise restricted. π
This option can also be set in the configuration file as rp_follow_symlinks. The default value of this option is FALSE.
-emstring,-aclstring β a comma separated list of ACL or event modules to load.
This option can also be set in the configuration file as acl.
β¨ Logging Options β¨
-dstring,-log-levelstring β log level. A comma separated list of levels from:ERROR,WARN,INFO,TRANSFER,DUMP,ALL.TRANSFERincludes the same statistics that get sent to the separate transfer log when-log-transferis used. Example:error,warn,info. You may also specify a numeric level of1-255. The default level isERROR.
This option can also be set in the configuration file as log_level. The default value of this option is ERROR.
-log-modulestring β theglobus_loggingmodule that will be loaded. If not set, the defaultstdiomodule will be used, and the logfile options apply. Built in modules arestdioandsyslog. Log module options may be set by specifyingmodule:opt1=val1:opt2=val2. Available options for the built in modules areintervalandbuffer, for buffer flush interval and buffer size, respectively. The default options are a64kbuffer size and a5second flush interval. A0second flush interval will disable periodic flushing, and the buffer will only flush when it is full. A value of0forbufferwill disable buffering and all messages will be written immediately. Example:-log-module stdio:buffer=4096:interval=10
This option can also be set in the configuration file as log_module.
-lstring,-logfilestring β path of a single file to log all activity to. If neither this option orlog_uniqueis set, logs will be written tostderrunless the execution mode is detached or inetd, in which case logging will be disabled.
This option can also be set in the configuration file as log_single.
-Lstring,-logdirstring β partial path to whichgridftp.(pid).logwill be appended to construct the log filename. Example:-L /var/log/gridftp/will create a separate log (/var/log/gridftp/gridftp.xxxx.log) for each process (which is normally each new client session). If neither this option orlog_singleis set, logs will be written tostderrunless the execution mode is detached or inetd, in which case logging will be disabled. πΈ
This option can also be set in the configuration file as log_unique.
-Zstring,-log-transferstring β log netlogger style info for each transfer into this file. You may also use the log-level ofTRANSFERto include this info in the standard log.
This option can also be set in the configuration file as log_transfer.
-log-filemodestring β file access permissions of log files. Should be an octal number such as0644.
This option can also be set in the configuration file as log_filemode.
-disable-usage-statsβ usage statistics collection is no longer supported. This option is ignored. π
This option can also be set in the configuration file as disable_usage_stats. The default value of this option is TRUE.
-usage-stats-targetstring β usage statistics collection is no longer supported. This option is ignored. π
This option can also be set in the configuration file as usage_stats_target.
-usage-stats-idstring β usage statistics collection is no longer supported. This option is ignored. π
This option can also be set in the configuration file as usage_stats_id.
π Single and Striped Remote Data Node Options π
-rstring,-remote-nodesstring β comma separated list of remote node contact strings.
This option can also be set in the configuration file as remote_nodes.
-hybridβ when a server is configured for striped operation with theremote_nodesoption, both a frontend and backend process are started even if the client does not request multiple stripes. This option will start backend processes only when striped operation is requested by the client, while servicing non-striped requests with a single frontend process. π¦
This option can also be set in the configuration file as hybrid. The default value of this option is FALSE.
-dn,-data-nodeβ this server is a backend data node.
This option can also be set in the configuration file as data_node. The default value of this option is FALSE.
-sbsnumber,-stripe-blocksizenumber β size in bytes of sequential data that each stripe will transfer.
This option can also be set in the configuration file as stripe_blocksize. The default value of this option is 1048576.
-stripe-countnumber β number of stripes to use per transfer when this server controls that number. If remote nodes are statically configured (via-rorremote_nodes), this will be set to that number of nodes, otherwise the default is1.
This option can also be set in the configuration file as stripe_count.
-slnumber,-stripe-layoutnumber β stripe layout.1= Partitioned2= Blocked
This option can also be set in the configuration file as stripe_layout. The default value of this option is 2.
-stripe-blocksize-lockedβ do not allow client to override stripe blocksize with theOPTS RETRcommand. π
This option can also be set in the configuration file as stripe_blocksize_locked. The default value of this option is FALSE.
-stripe-layout-lockedβ do not allow client to override stripe layout with theOPTS RETRcommand. π
This option can also be set in the configuration file as stripe_layout_locked. The default value of this option is FALSE.
πΎ Disk Options πΎ
-bsnumber,-blocksizenumber β size in bytes of data blocks to read from disk before posting to the network.
This option can also be set in the configuration file as blocksize. The default value of this option is 262144.
-sync-writesβ flush disk writes before sending a restart marker. Basically it's trying to make sure the range in the restart marker has actually been committed to disk. Heads up though: this will probably tank your performance, and different storage systems might do different things with it. See the manpage forsync()for more.
You can also set this in the config file as sync_writes. Default? FALSE. π
-permsstring β set the default permissions for created files. Should be an octal number like0644. The default is0644. β οΈ Note: ifumaskis set it'll affect this setting β like, if the umask is0002and this setting is0666, the resulting files get created with permissions of0664.
You can also set this in the config file as perms.
-file-timeoutnumber β timeout in seconds for all disk accesses. A value of0disables the timeout entirely.
You can also set this in the config file as file_timeout.
β¨ Network Options β¨
-pnumber,-portnumber β the port a frontend listens on for client control channel connections, or the port a data node listens on for connections from a frontend. If you don't set it, a random port gets chosen and printed out via the logging mechanism. π
You can also set this in the config file as port.
-control-interfacestring β hostname or IP address of the interface to listen for control connections on. Not set? It listens on all interfaces.
You can also set this in the config file as control_interface.
-data-interfacestring β hostname or IP address of the interface to use for data connections. Not set? It uses the current control interface.
You can also set this in the config file as data_interface.
-ipc-interfacestring β hostname or IP address of the interface to use for ipc connections. Not set? It listens on all interfaces.
You can also set this in the config file as ipc_interface.
-hostnamestring β effectively sets thecontrol_interface,data_interfaceandipc_interfaceoptions above, all in one go. Efficiency queen π
You can also set this in the config file as hostname.
-ipc-portnumber β port on which the frontend will listen for data node connections.
You can also set this in the config file as ipc_port.
-control-preauth-timeoutnumber β time in seconds to let a client stay connected to the control channel with zero activity before it has to authenticate.
You can also set this in the config file as control_preauth_timeout. Default is 120.
-control-idle-timeoutnumber β time in seconds to let a client stay connected to the control channel without any activity.
You can also set this in the config file as control_idle_timeout. Default is 600.
-ipc-idle-timeoutnumber β idle time in seconds before an unused ipc connection gets closed. bye bestie π
You can also set this in the config file as ipc_idle_timeout. Default is 900.
-ipc-connect-timeoutnumber β time in seconds before an attempted ipc connection gets cancelled.
You can also set this in the config file as ipc_connect_timeout. Default is 60.
-allow-udtβ enables protocol support for UDT with NAT traversal, if the udt driver is available. Requires threads.
You can also set this in the config file as allow_udt. Default is FALSE.
-port-rangestring β port range to use for incoming connections. Format is"startport,endport". This, together with-data-interface, can be used to enable operation behind a firewall and/or when NAT is involved. This is the same as setting the environment variableGLOBUS_TCP_PORT_RANGE.
You can also set this in the config file as port_range.
-epsv-ipβ adds an IPv6 address to the EPSV response. Yes it breaks RFC 2428, but it lets redirection work with IPv6. π
You can also set this in the config file as epsv_ip. Default is FALSE.
-epsv-matchβ makes EPSV behaviour more compliant with RFC 2428 by choosing the default data connection protocol based on the control connection protocol.
You can also set this in the config file as epsv_match. Default is FALSE.
π User Messages π
-bannerstring β message to show the client before authentication.
You can also set this in the config file as banner.
-banner-filestring β file to read the banner message from.
You can also set this in the config file as banner_file.
-banner-terseβ when this is set, the minimum allowed banner message gets displayed to unauthenticated clients. lowkey mysterious β¨
You can also set this in the config file as banner_terse. Default is FALSE.
-banner-appendβ when this is set, the message set in thebannerorbanner_fileoption gets appended to the default banner message instead of replacing it.
You can also set this in the config file as banner_append. Default is FALSE.
-version-tagstring β add an identifying string to the existing toolkit version. It shows up in the default banner message, theSITE VERSIONcommand, and usage stats.
You can also set this in the config file as version_tag.
-login-msgstring β message to show the client after authentication.
You can also set this in the config file as login_msg.
-login-msg-filestring β file to read the login message from.
You can also set this in the config file as login_msg_file.
π§© Module Options π§©
-dsistring β Data Storage Interface module to load. File and remote modules are defined by the server. If it's not set, the file module gets loaded β unless the remote option is specified, in which case the remote module gets loaded. An additional configuration string can be passed to the DSI using the format[module name]:[configuration string]for this option. The format of that configuration string is defined by the DSI being loaded.
You can also set this in the config file as load_dsi_module.
-allowed-modulesstring β comma separated list of ERET/ESTO modules to allow, and optionally an alias for each. Example:module1,alias2:module2,module3(module2will be loaded when a client asks foralias2).
You can also set this in the config file as allowed_modules.
-dc-whiteliststring β a comma separated list of drivers allowed on the network stack.
You can also set this in the config file as dc_whitelist.
-fs-whiteliststring β a comma separated list of drivers allowed on the disk stack.
You can also set this in the config file as fs_whitelist.
-popen-whiteliststring β a comma separated list of programs the popen driver is allowed to execute, when used on the network or disk stack. An alias may also be specified so a client doesn't need to type the full path. Format is[alias:]prog,[alias:]prog. Example:/bin/gzip,tar:/bin/tar
You can also set this in the config file as popen_whitelist.
-xnetmgrstring β an option string to pass to the XIO Network Manager Driver, which then gets loaded for all data channel connections. Must be in the form"manager=module;option1=value;option2=value;". See the Network Manager documentation for more info.
You can also set this in the config file as xnetmgr.
-dc-defaultstring β a comma separated list of XIO drivers and options representing the default network stack. Format for each driver entry isdriver1[:opt1=val1;opt2=val2;...]. The bottom of the stack, the transport driver, is always first.
You can also set this in the config file as dc_default.
-fs-defaultstring β a comma separated list of XIO drivers and options representing the default disk stack. Format for each driver entry isdriver1[:opt1=val1;opt2=val2;...]. The bottom of the stack, the transport driver, is always first.
You can also set this in the config file as fs_default.
π Other π
-cstring β path to the main configuration file that should be loaded. Otherwise it'll try to load$GLOBUS_LOCATION/etc/gridftp.confand/etc/grid-security/gridftp.conf.-Cstring β path to a directory holding configuration files that should be loaded. Files get loaded in alphabetical order, and if there are duplicate parameters the last loaded file wins. Backup files and files created by package updates (e.g.file.rpmsave) get ignored. Note that the main configuration file, if one exists, will always be loaded last.
You can also set this in the config file as config_dir.
-config-base-pathstring β base path to use when config and log path options aren't full paths. By default this is the current directory at the time the process starts.
You can also set this in the config file as config_base_path.
-debugβ sets options that make the server easier to debug. Forcesno-fork,no-chdir, and allows core dumps on bad signals instead of exiting cleanly. π¨ Not recommended for production servers. Note that non-forked servers running as root will only accept a single connection, and then exit.
You can also set this in the config file as debug. Default is FALSE.
-pidfilestring β
You can also set this in the config file as pidfile.
okay bestie, real talk: the original manpage literally gives this one no description. nothing. empty. I'm not making anything up for you, so it just vibes there in silence π
π EXIT STATUS π
0β successful program execution. slay. that's it, that's the whole list. periodt π
<div style="text-align:center">π</div>
and that's the whole page, bestie!! this one's from the Grid Community Toolkit 6, dated 08/22/2019, and it lives under the name GLOBUS-GRIDFTP-SER(8). go forth and configure responsibly π«Άβ¨πΈ
π¦ where this page comes from
- debian bookworm: globus-gridftp-server-progs 13.24-3 Β· Apache-2.0
- debian trixie: globus-gridftp-server-progs 13.25-6 Β· Apache-2.0
- epel 10: globus-gridftp-server-progs 13.28-1.el10_2 Β· Apache-2.0
- epel 9: globus-gridftp-server-progs 13.28-1.el9 Β· Apache-2.0
- fedora 43: globus-gridftp-server-progs 13.25-6.fc43 Β· Apache-2.0
- fedora 43: globus-gridftp-server-progs 13.28-1.fc43 Β· Apache-2.0
- fedora 44: globus-gridftp-server-progs 13.28-2.fc44 Β· Apache-2.0
- ubuntu jammy: globus-gridftp-server-progs 13.22-1build1 Β· Apache-2.0
- ubuntu noble: globus-gridftp-server-progs 13.25-5 Β· Apache-2.0
- ubuntu questing: globus-gridftp-server-progs 13.25-6
- ubuntu resolute: globus-gridftp-server-progs 13.28-1 Β· Apache-2.0
- ubuntu stonking: globus-gridftp-server-progs 13.28-2build1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms