HPC/Sharing Files

From CNM Wiki
Jump to navigation Jump to search

Introduction

When you collaborate with other users on a common project on Carbon, you may wish to share files among you. There are several ways to achieve this, largely distinguished by how often and for how long sharing is needed.

Sharing Types

Using a Unix group

  • This option is suitable for ongoing exchanges.
  • A group directory will be created and can be accessed by one of the following names:
/home/share/groupname
~groupname
  • The directory will be mutually readable and writable among group members, and will not be accessible by other users.
  • Permissions will be inherited to all files placed there.

Typically, such a group name and directory is created automatically for each CNM proposal that has more than one user. You can access the shared directories for proposals by one of the following:

/home/share/cnm12345
~cnm12345

The system admin can create a project group and directory for you. To request the creation of a group, please send the following information:

  1. a group name which should be short (up to some 8 chars), descriptive, and distinctive.
  2. the user list (later changes are easy).

Sharing in your own directories

You can give access to some of your directories in your respective $HOME or $SANDBOX by opening permissions.

  • This option is typically useful for one-way sharing.
  • For bidirectional sharing, you will need to grant world-write permissions, which is not recommended for files in your own directory space.
  • You will likely need to repeatedly open permissions (chmod) for additional files that are placed there.

You as the owner can arrange this on your own as follows:

chmod a+x $HOME/
mkdir $HOME/share
# populate ..
chmod -R a+rX $HOME/share
This will yield read ("r") and execute ("X") permissions for all users ("a"), meaning users can browse directories, and read and execute already executable files there.
You may have to repeat the last step after you add files in the shared directory.

Direct your fellow users as follows:

cd /home/owner/share
ls
cp -p ....

If you have particularly large files, replace $HOME and /home by $SANDBOX and /sandbox, respectively.

Using a /tmp directory

  • suitable for one-off exchanges
  • typically fairly loose permissions
  • resides on only one host
  • world-write not recommended
  • likely to need chmod whenever more files are placed

You can arrange this on your own as well:

mkdir /tmp/foo
# populate ..
chmod -R a+rX /tmp/foo