Skip to content

Commit 7675e1f

Browse files
authored
Merge pull request #30 from jcf2/master
[ENH] Update discovery.md to add ACLs
2 parents b0c1333 + 11d7885 commit 7675e1f

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/computing/discovery.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ This section provides additional, typically DBIC users specific information and
66

77
## Getting Access
88

9+
- See the [Research Computing page on cluster access](https://rc.dartmouth.edu/discovery-overview/accessing-the-cluster/)
10+
911
## MUST KNOWs
1012

1113
- Please be considerate about the nodes you are using. When you login, you
1214
are on a login-node, but no work should be done here! Instead, use an interactive node `x01`, scheduling node, `s01`, or if you have permission, the fancy IT node `ndoli`.
13-
- Home dir limited 50gigs for large datasets, use `/dartfs/rc/lab/D/DBIC/DBIC/`
15+
- Home dirs are limited to 50 GB storage; for large datasets, use `/dartfs/rc/lab/D/DBIC/DBIC/`
1416

1517
## Recommended .bashrc
1618

@@ -108,6 +110,8 @@ git config --global annex.freezecontent-command '/dartfs/rc/lab/D/DBIC/DBIC/arch
108110
109111
**Step 3: make sure that directory has group ACL to remove children**
110112
113+
(see also the section below on "ACL"s for more background)
114+
111115
It is the [`D` ACE Permission](https://www.osc.edu/book/export/html/4523): if folder lacks it, then `git-annex` will be unable to move read-only file under `.git/annex`.
112116
So, if you get a "Permission error" while trying to `git annex add` or `datalad save`, you might need to add that to the group permissions.
113117
Use `/dartfs/rc/lab/D/DBIC/DBIC/archive/bin-annex/fix-dir-group-perm` script with the folder under which you want to create/clone repo to add that `D`.
@@ -118,3 +122,20 @@ If that doesn't happen - file an issue.
118122
##### Parallel get - multiple passwords
119123
120124
If you are `get`ing data to discovery, to non-POSIX compliant filesystem, then you must provide option `-J1` to `datalad get` to prevent parallel downloads and multiple password prompts.
125+
126+
## About File/Directory Permissions and ACLs
127+
128+
The traditional/legacy permission structure on Linux is a "user-group-other" triple, with three permission settings for each: "read-write-execute" (coded as rwx). If you run `ls -l` on a file or directory, this is the core of what you see on the left, e.g. `rwxrwx---` would indicate that both user and group (both also specified in the `ls -l` "long" output) have full "read-write-execute" permissions, but others have none.
129+
130+
However, filesytems (including the DartFS filesyste on Discovery) can use "access control lists" (ACLs) to provide an alternate means of permission settings --- and ACLs can render the basic permission listing incomplete, if not incorrect (or at least capable of misleading). Here are key points:
131+
132+
- When an ACL is present there is a `+` on the `ls -l` permissions block
133+
- ACLs allow for more than one group to have permissions associated with a file or directory
134+
- On Discovery the `ls -l` output will show `rwx` in the legacy group permission bits if **any** group has `rwx`, not specifically the "primary" group listed (making group + group permissions combo shown potentially "wrong")
135+
136+
To view ACLs the standard command is `getfacl`, but on NFS4 fileystems (such as DartFS) the right version of that is `nfs4_getfacl`... and really the best option on Discovery is the locally provided wrapper `listacl`.
137+
138+
### ACL Pro tips:
139+
140+
- The local command `listADgroup` can provide a listing of group members in any ACL group by executing an Active Directory query (this is a Python wrapper that does an LDAP lookup and formats it, along with extra information about each member)
141+
- Refer to Research Computing docs for complete details --- [this doc](https://services.dartmouth.edu/TDClient/1806/Portal/KB/ArticleDet?ID=88459) on DartFS lab permissions is a good starting point (searching inside of [services.dartmouth.edu](https://services.dartmouth.edu) for "DartFS permissions" will show a few other locally-generated documents)

0 commit comments

Comments
 (0)