From Documentation
Revision as of 13:42, 29 January 2016 by Preney (Talk | contribs) (Enabling Per-user/group Access: chmod Method)

Jump to: navigation, search

Getting Help

I have encountered a problem while using a SHARCNET system and need help, who should I talk to?

If you have access to the Internet, we encourage you to use the problem ticketing system (described in detail below) through the web portal. This is the most efficient way of reporting a problem as it minimizes email traffic and will likely result in you receiving a faster response than through other channels.

You are also welcome to contact system administrators and/or high performance technical computing consultants at any time. You may find their contact information on the directory page.

How long should I expect to wait for support?

Unfortunately SHARCNET does not have adequate funding to provide support 24 hours a day, 7 days a week. User support and system monitoring is limited to regular business hours: there is no official support on weekends or holidays, or outside 9:00 - 17:00 EST .

Please note that this includes monitoring of our systems and operations, so typically when there are problems overnight or on weekends/holidays system notices will not be posted until the next business day.

SHARCNET Problem Ticket System

What is a "problem ticket system"?

This is a system that allows anyone with a SHARCNET account to start a persistent email thread that is referred to as a "problem ticket". The thread is stored indefinitely by SHARCNET and can be consulted by any SHARCNET user in the future. When a user submits a new ticket it will be brought to the attention of an appropriate and available SHARCNET staff member for resolution.

You can find the SHARCNET ticket system here, or by logging into our website and clicking on "Help" then "Problems" in the top left-hand-side menu.

How do I search for existing tickets ?

Type a meaningful string into the search box when logged into the SHARCNET web portal. You can find this text entry box beside the Go button on the top right-hand-side of the page in the web portal.

It is recommended that one use specific words when searching, for example the exit code returned in your job output, or the error message produced when attempting a command. Use of common search terms may produce too many results and this coupled with the lack of sophisticated ranking for results means your search will likely be misleading or time consuming if you have to sift through many results by hand.

What do I need to specify in a ticket ?

If you do not find any tickets that deal with you current problem (as illustrated above) then you should ensure you include the following information, if relevant, when submitting a ticket:

  1. use a concise and unique Subject for the ticket
    • this makes it easier to identify in search results, for example
  2. select sensible values for the System Name and Category drop down boxes
    • this helps guide your ticket to the right staff member as quickly as possible
  3. in the Comment text entry box:
    1. if the problem pertains to a job report the jobid associated with the job
      • this is an integer that is returned by sqsub when you submit the job
      • you can also find a listing of your recent jobs (including their jobid) in the web portal at the bottom of this page
    2. report the exact commands necessary to duplicate the problem, as well as any error output that helps identify the problem
      • if relevant, this should include how the code is compiled, how the job is submitted, and/or anything else you are doing from the command line relating to the problem
    3. if this ticket relates to another ticket, please specify the associated ticket number(s)
    4. if you'd like for a particular staff member to be aware of the ticket, mention them
  4. if you want to expedite resolution you can make your files publicly available ahead of time
    • you should include any relevant files required to duplicate the problem
    • if you're not comfortable with changing your own file permissions, in Comment you can request that a staff member provide a location where you can copy the necessary files, or arrange file transfer via other means. If your code is really sensitive you may have to arrange to meet in person to show them the problem.

How do I submit a ticket?

We recommend that you read the above section on what to specify in a ticket before submitting a new ticket.

Users can submit a problem ticket describing an issue, problem or other request and they will then receive messages concerning the ticket via email (the ticket can also be consulted via the web portal).

You can also open a ticket automatically by emailing help@sharcnet.ca with the email address associated with your SHARCNET account.

How do I give other users access to my files ?

There are two ways to provide other users with access to your files. The first is by changing the file attributes of your directories directly with the chmod command and the second is by using file access control lists (acl). Using ACLs is more flexible as it allows you to specify individual users and groups and their respective privileges, whereas using chmod is more coarse grained and only allows you to set the permissions for your group and global access. At present ACLs are only supported on the SHARCNET global work (/work) and home (/home) filesystems.

Enabling Per-user/group Access: chmod Method

Suppose you have a program and some files in:

/home/account/research/projectx

that you want to provide access to some users and/or groups.

The first step is to make the "top" directory you control have world execute permission. This will allow other users to be able to cd (change directory) into subdirectories under such. You only need to have world execute permission --world read permission is not needed. (Enabling world read permission will allow anyone to see all file and subdirectory names in that directory --so you may wish to keep / turn such off.)

The "top" directories you control on SHARCNET are any of these (where $USER is your SHARCNET userid):

  • /home/$USER
  • /work/$USER
  • /scratch/$USER

So if you want to provide access to the directory:

/home/$USER/research/projectx

you would run (once) the following command:

chmod o+x /home/$USER

or equivalently (since this is your home directory):

chmod o+x ~

If you also want to be sure others cannot see the files and subdirectories in your home directory, then add a -rw (which turns off the ability to read the directory contents or the ability to write into and delete directory contents) to the chmod command as follows:

chmod o+x-rw /home/$USER

Similarly, you can set your "top" work directory if that is where you want to provide access, like this:

chmod o+x /work/$USER

or with the added -rw as follows:

chmod o+x-rw /work/$USER

NOTE: If unsure and you want to err on the side of keeping things private, use "chmod o+x-rw DIRECTORY_NAME".

Now repeat this process for all directories in the path you want to provide access to except the last one. For example, to provide access to this projectx directory:

/home/$USER/research/projectx

you would need to run:

chmod o+x /home/$USER
chmod o+x /home/$USER/research

For the last directory, i.e., projectx, provide both read and execute permissions, and, if you want to allow others to write to that directory, also allow write permission.

To only provide read and execute permission with the last directory, run:

chmod o+rx /home/$USER/research/projectx

and to provide read, write, and execute permission, run:

chmod o+rwx /home/$USER/research/projectx

More realistically however, you would like others to be able to do either of the following:

  1. read everything in the projectx directory (and disallow others' ability to write/update/delete), or,
  2. read everything and be able to modify/write contents within the projectx directory.

To do the former (i.e., Item 1), run on the last directory (i.e., "projectx" in this example):

chmod -R o+rX-w /home/$USER/research/projectx

and to do the latter (i.e., Iterm 2), run on the last directory (i.e., "projectx" in this example):

chmod -R o+rwX /home/$USER/research/projectx

Now, you can tell the users you want to be able to access this directory its FULL PATH, i.e.,

/home/yourloginname/research/projectx

and those users will be able to run:

cd /home/yourlogginname/research/projectx

to have the access you've granted. (Don't tell the user a path with $USER in it --that won't work: you must use the full path. If you are unsure, "cd" to that directory and run the "pwd" command which will output the full path to the "present working directory".)

NOTE: The "other" permission settings in this section allow ANY other user actions permitted implied by the permissions you've set. If this is too open, then read the sections below that use the setfacl command.

Disabling Per-user/group Access: chmod Method

At some point, you will want to revoke permissions granted to others. If you had previously provided access to your "projectx" directory using these commands:

chmod o+x /home/$USER
chmod o+x /home/$USER/research
chmod -R o+rwX /home/$USER/research/projectx

then you would revoke access using:

chmod o-rwx /home/$USER
chmod o-rwx /home/$USER/research
chmod -R o-rwx /home/$USER/research/projectx

Know that this will revoke all "other" access. If you have other users using other directories under /home, then you will not want to run:

chmod o-x /home/$USER

as that will prevent those users from accessing those other directories.


providing per-user/group access with setfacl

An Access Control List (ACL) is basically a list of users and groups with their associated file access privileges which is associated with a file/directory. At present ACLs are only supported on the SHARCNET global work (/work) and home (/home) filesystems.

One can see the ACL for a particular file/directory with the getfacl command, eg.

[sn_user@hnd50 ~]$ getfacl /work/sn_user
getfacl: Removing leading '/' from absolute path names
# file: work/sn_user
# owner: sn_user
# group: sn_user
user::rwx
group::r-x
other::--x

One uses the setfacl command to modify the ACL for a file/directory. To add read and execute permissions for this directory for user ricky, eg.

[sn_user@hnd50 ~]$ setfacl -m u:ricky:rx /work/sn_user

Now there is an entry for user:ricky with r-x permissions:

[sn_user@hnd50 ~]$ getfacl /work/sn_user
getfacl: Removing leading '/' from absolute path names
# file: work/sn_user
# owner: sn_user
# group: sn_user
user::rwx
user:ricky:r-x
group::r-x
mask::r-x
other::--x

To remove an ACL entry one uses the setfacl command with the -x argument, eg.

[sn_user@hnd50 ~]$ setfacl -x u:ricky /work/sn_user

Now there is no longer an entry for ricky:

[sn_user@hnd50 ~]$ getfacl /work/sn_user
getfacl: Removing leading '/' from absolute path names
# file: work/sn_user
# owner: sn_user
# group: sn_user
user::rwx
group::r-x
mask::r-x
other::--x

Note that if one wants to provide access to a nested directory then the permissions need to be changed on all the parent directories using the -R flag. Please see the man pages for these commands man getfacl; man setfacl for further information. If you'd like help utilizing ACLs please email help@sharcnet.ca.

I am new to parallel programming, where can I find quick references at SHARCNET?

SHARCNET has a number of training modules on parallel programming using MPI, OpenMP, pthreads and other frameworks. Each of these modules has working examples that are designed to be easy to understand while illustrating basic concepts. You may find these along with copies of slides from related presentations and links to external resources on the Main Page of this training/help site.

I am new to parallel programming, can you help me get started with my project?

Absolutely. We will be glad to help you from planning the project, architecting your application programs with appropriate algorithms and choosing efficient tools to solve associated numerical problems to debugging and analyzing your code. We will do our best to help you speed up research.

Can you install a package on a cluster for me?

Certainly. We suggest you make the request by sending e-mail to help@sharcnet.ca, or opening a problem ticket with the specific request.

I am in a process of purchasing computer equipment for my research, would you be able to provide technical advice on that?

If you tell us what you want, we may be able to help you out.

Does SHARCNET have a mailing list or user group?

Yes. You may subscribe to one or more mailing lists on the email list page available once you log into the web portal. To find it, please go to MyAccount - Settings - Details in the menu bar on the left and then click on Mail on the "details" page. Don't forget to save your selections.

How do I add/remove myself to/from a SHARCNET mailing list?

To add/remove yourself to/from a SHARCNET mailing list, do the following:

  1. Log in to the SHARCNET portal: https://www.sharcnet.ca/
  2. Click on the My Account menu item.
  3. Click on the Settings menu item under My Account.
  4. Click on the Details menu item under Settings.
  5. Click on the Mail link near the bottom of the page.

The page that appears has checkboxes that allow you to add/remove yourself to/from a SHARCNET mailing list. To add yourself, click the checkbox on the line of the mailing list you are interested in; to remove yourself, uncheck the checkbox instead. Finally, when done, be sure to click the Save button at the bottom of the page to record these changes.

Does SHARCNET provide any training on programming and using the systems?

Yes. SHARCNET provides workshops on specific topics from time to time and offers courses at some sites. Every June, SHARCNET holds an annual summer school with a variety of in-depth, hands-on workshops. All materials from past workshops/presentations can be found on the SHARCNET web portal.

SHARCNET also offers a series of online seminars. These are announced via the SHARCNET events mailing list and one can see the schedule at the SHARCNET event calendar. Past seminars are recorded, a full listing is in the Online_Seminars page.

How do I watch tickets I don't own?

There are two ways. First, to view the tickets of user "USERID", type the URL like below:

https://www.sharcnet.ca/my/problems/view?username=USERID

,where USERID is the user you want to see. In the "Actions" column, click on "watch" for problems that you want to follow. This should enable you to receive notifications if any of the problems you are "watching" are updated.

If you want to do the same thing for tickets posted by other members in your group, just access their userpage (listed on https://www.sharcnet.ca/my/users/show/361 )

The other way is to use 'search box' in the SHARCNET website. By typing the ticket number or userid, you can do similar thing described above.