cuno#
Synopsis#
cuno [--verbose|-v] [--option|-o <cunoFS option>] [--posix] [<command>] [<args>]
Options#
--verbose
,-v
Make cuno produce verbose output. Note that this is not the same as enabling
CUNO_CLOUD_DEBUG
! It only makes thecuno
command itself verbose, not applications launched inside it.-o
,--option <cunoFS option>
Set a cunoFS option. Multiple options can be specified by providing multiple
-o
arguments. Together, cunoFS options set in this way are appended to those set viaCUNO_OPTIONS
. See the CONFIGURATION OPTIONS below for details.--posix
Sets the environment variable
CUNO_POSIX=1
to enable POSIX File Access mode. This is useful for short-term use of applications that expect POSIX semantics, such as rsync or tar.Not to be confused with
cuno mount --posix
, which is required when mounting POSIX buckets with cunoFS Mount.This will not write or override any bucket tags set, so should you should prefer to consistently enable POSIX File Access for all users/usages of a bucket by setting the tag
cuno creds setposix <xx://bucket> true
.
Commands#
cuno shell [--flex|-f <path to mount>]
Enables cunoFS Direct Interception by launching a new interactive “wrapped” shell with cunoFS. The shell itself has cunoFS intercepting its calls, so every application launched from within it can be intercepted as well as the command line arguments being used.
The fully-supported shells are
bash
, andzsh
. To select between them, this command checks the shell used to launch this command, the user’s preferred login shell, and installed shells. If unsatisfied,cuno shell
will launch the first shell found (in the same search order). If no other shell is found,/bin/sh
is used.With no command set,
cuno
behaves likecuno shell
.cuno run <command>
Run a single shell command as if invoked directly, but with cunoFS loaded. The command should be an unquoted command line, e.g.:
cuno run ls -l s3://some-bucket
cuno creds [import | purge | pair | unpair | list | setposix | info | billing | upgrade | activate | deactivate | help] [<args>]
Launch the cunoFS Credentials Manager utility to import and manage credentials / bucket pairings. See cuno-creds(1) for details.
cuno mount [--unmount|-u] <mount-point> [<args>]
Mount or unmount a cunoFS Mount via FUSE. See cuno-mount(1) for details.
cuno version
Print out version information.
cuno help [shell | run | creds | mount | fusion]
Display the manual pages for one of the subcommands.
Environment#
CUNO_CREDENTIALS
The location of imported cunoFS credentials. The default location is
$XDG_CONFIG_HOME/cuno/creds
(if unset,$XDG_CONFIG_HOME
defaults to~/.config
). If theCUNO_CREDENTIALS
environment variable is set but the path does not exist, cunoFS will next examine the default location. If that does not exist either, cunoFS will try to fall back to the pathcuno-config/creds
adjacent to the cunoFS installation directory; that is,/opt/cuno-config/creds
or~/.local/opt/cuno-config/creds
for the default system or user local installation, respectively.CUNO_OPTIONS
A whitespace-separated list of options to pass to cunoFS. See CONFIGURATION OPTIONS for details.
CUNO_POSIX
Default is 0 so cunoFS operates in Core File Access mode unless a tag has been on the bucket being accessed. If set to
1
, cunoFS will enable POSIX File Access mode. This is useful for short-term use of applications that expect POSIX semantics, such as rsync or tar.CUNO_LOG
There are rare occasions where cunoFS will output to the command line, and this will generally indicate a fault. All messages will be prefixed with
[CUNO]
and these will always be sent a to the standard error stream (stderr
).The options available for
CUNO_LOG
are cumulative and build on the previous level:- error
Only critical failures are output. (default)
- warning
Errors and warnings.
- debug
Information relevant to debugging.
- trace
Very verbose verbiage.
CUNO_BASEDIR
The base directory of the cunoFS installation. Can be provided to cuno if is launched from an alternative location. If specified, it needs to be the cunoFS installation path ending in
cuno
, not its parent directory. Only useful if you have moved thecuno
binary out of the installation directory.
Configuration options#
Setting the environment variable CUNO_OPTIONS
can be used to further configure cunoFS, including (for most options) while already running. Note that multiple options must be separated by spaces. Do not forget to escape these spaces, e.g. by quoting them. Here are the available options for CUNO_OPTIONS
:
|
Disable cunoFS access. |
|
Enable interception of statically compiled binaries. (default) |
|
Disable interception of statically compiled binaries. |
|
Keep recently closed virtual files cached for N*0.1 seconds. This helps the performance of applications like Apache which frequently open/close/reopen files. (Disabled by default, if |
|
Enable cloud access using both |
|
Disable cloud access. If followed by +urifile, then only |
|
Enable cloud access using strict URI formats such as |
|
Slight variations of URI format |
|
|
|
Disable cloud access using URIs such as |
|
When a paired URI is detected, and if the binary is a member of this colon-separated list, then URI remapping is enforced, instead of the binary’s own URI handling scheme. Can also be wildcard |
|
Disable URI remapping scheme for all binaries. |
|
URI remapping is enforced for all URIs, not just paired URIs. |
|
Enable hard link functionality. (default ONLY when POSIX File Access is enabled) |
|
Disable hard link functionality. |
|
Define a custom directory path prefix that will be used instead of ‘/cuno’ to introduce cloud locations. For how this relates to FlexMount and the effects of setting cloudroot when mounting a cunoFS Mount, see the user-guide-cloudroot section. Using a tilde, ‘~’, in the path is unsupported. (default: /cuno) |
|
cunoFS Direct Interception will prioritise the cunoFS Mount at the path specified by the cloudroot option. This means that any intercepted calls to a location within the cloudroot path will be handled by the cunoFS Mount at that location. This disables FlexMount mode, equivalent to ‘cloudrootover=off’. (default) |
|
cunoFS Direct Interception will prioritise itself over anything at the path specified by cloudroot, but only if the input path exactly matches the text in cloudroot, equivalent to ‘cloudrootover=exact’. Use this to enable FlexMount behavior at the cloudroot. |
|
These settings affect what happens to when cunoFS Direct Interception (i.e. when cunoFS CLI is launched or LD_PRELOAD is set) encounters a path which already exists on the local filesystem, and affects the FlexMount behaviour if that local path refers to a cunoFS Mount. See the descriptions of each individual setting to learn more about what they do. (default: off) |
|
cunoFS Direct Interception will prioritise local directories, including the cunoFS Mount at the path specified by the cloudroot option. This means that any intercepted calls to a location within the cloudroot path will be handled by the cunoFS Mount at that location. This disables FlexMount mode. (default) |
|
cunoFS Direct Interception will prioritise itself over local directories at the path specified by cloudroot, but only if the input path exactly matches the text in cloudroot. This also disables cunoFS Direct Interception’s static binary translator and cloud binary interception, so static binaries and binaries in object storage are passed through to the cunoFS Mount at the cloudroot. Use this to enable FlexMount behavior at the cloudroot. |
|
cunoFS Direct Interception will prioritise itself over anything that resolves to the same local path as the path specified by cloudroot. This also disables cunoFS Direct Interception’s static binary translator, so static binaries and binaries in object storage are passed through to the cunoFS Mount at the cloudroot. Use this to enable FlexMount behavior at the cloudroot, in a more resilient way. |
|
cunoFS Direct Interception of static binaries and binaries on object storage will be re-enabled. Must be used in conjunction with a FlexMount-enabling cloudrootover option. This also enables ‘cloudrootover=resolve’. |
|
The <path-to-cunoFS-mount> only needs to specified if an explicit ‘–root’ option was used when creating the cunoFS Mount. In this case, assuming the ‘–root’ value was set to a bucket or a directory on object storage (e.g. ‘cuno mount “$HOME/mybucket” –root /cuno/s3/mybucket/foo’), then you must set cloudrootover to the mount point AND not set cloudroot when launching cunoFS CLI to use the mount as FlexMount (e.g. ‘cuno -o cloudrootover=”$HOME/mybucket”’). This also implies ‘cloudrootover=exact’. If a cloudroot option was specified when creating the cunoFS Mount, or the –root option was used when creating the mount and refers to anywhere that isn’t inside the default cunoFS Mount cloudroot (‘/cuno’), then refer to the user-guide-cloudroot. Using a tilde, ‘~’, in the path is unsupported. |
|
We prefer that certain shells and debuggers (e.g. sh, tsh and gdb) disable/unload cunoFS Direct Interception in FlexMount-enabled modes for stability. Note that Direct Interception is re-enabled for any programs that they launch. This option disables this unloading behaviour. Warning: this may break things when you run these shells. |
|
We prefer that certain shells and debuggers (e.g. sh, tsh and gdb) disable cunoFS Direct Interception in cloudrootover enabled modes for stability. This option disables cunoFS Direct Interception (enables un-loading) when cloudrootover is enabled. (default) |
|
Colon-separated list of paths to binaries. We prefer that certain shells and debuggers (e.g. sh, tsh and gdb) disable cunoFS Direct Interception in FlexMount-enabled modes for stability. This option disables cunoFS Direct Interception (enables un-loading) when FlexMount is enabled and one of binaries specified is launched. (default: bin/sh:bin/tsh:bin/gdb) |
|
Appends <path-to-binary> to the list of ‘cloudrootoverunload’ binaries. This option will disable cunoFS Direct Interception (enable un-loading) in FlexMount-enabled modes when the specified binary is launched. |
|
Disable cunoFS high performance metadata caching. |
|
Enable cunoFS high performance metadata caching and optionally set a semicolon-delimited list of directories to consider for caching (default: |
|
Scaling factor for the number of retries for non-fatal failed requests made to the server, e.g. |
|
Define the default user ownership of files and directories within a bucket. Supply the user identifier in the numerical representation derived from |
|
Define the default group ownership of files and directories within a bucket. Supply the group identifier in the numerical representation derived from |
|
Define the default file access permission bits of files within a bucket. Supply the octal (numeric) representation of the permissions you want to apply. |
|
Define the default file access permission bits of directories within a bucket. Supply the octal (numeric) representation of the permissions you want to apply. |
|
Resetting discards any options from previous CUNO_OPTIONS assignments within the current shell. Subcommands only see the current CUNO_OPTIONS. |
See also#
cuno-shell(8), cuno-creds(1), cuno-mount(1)