cuno-shell#

Synopsis#

cuno [--flex|-f <path to mount>]

cuno shell [--flex|-f <path to mount>]

Description#

Enables cunoFS Direct Interception by launching a new interactive “wrapped” shell with cunoFS. The shell itself has cunoFS intercepting its calls through the LD_PRELOAD environment variable. Every application subsequently launched from the shell can be intercepted as well as the command line arguments being used.

The fully-supported shells are bash, and zsh. 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 like cuno shell.

Options#

--flex|-f <path to existing mount>

When launching a shell, this option will tell the shell to use the specified mount as a FlexMount point. This allows calls made over the FlexMount to be intercepted by cunoFS Direct Interception and any calls that are not intercepted will fall back to the Mount.

Cloud usage#

There are two ways to use cloud paths in your commands and applications when using cunoFS Direct Interception.

The first one is using the URI format:

<s3/gs>://<bucket> or <az>://<account name>/<container>

while the second method is using the directory format:

/cuno/<s3/gs>/<bucket> or /cuno/az/<account name>/<container name>

Some software tools have difficulties processing the URI format. For these cases, we recommend the usage of the directory (/cuno/xx/<bucket>) format.

Manually set LD_PRELOAD#

cuno.so is the LD_PRELOAD library that cunoFS uses to do Direct Interception. The LD_PRELOAD library can be loaded by any user, without requiring superuser privileges.

In the rare case when cuno shell / cuno run cannot be run but setting the LD_PRELOAD environment variable is possible, you can use cuno.so directly by setting the environment variable directly:

export LD_PRELOAD=/usr/lib/cuno.so

Then start a new shell (bash, zsh, etc.).

In general, we always recommend having the whole shell intercepted by cunoFS, to make use of functionality on the cloud that the shell itself is responsible for (tab auto-complete, wildcard expansion *, etc.). This will enable cunoFS for the shell launched and any commands/applications run from it.

For more methods of enabling cunoFS Direct Interception such as inside Docker, Singularity, Kubernetes and more, see the Advanced Loading section of the User Guide.

See also#

cuno(1), cuno-creds(1), cuno-mount(1)