Closed vdtoorn closed 2 years ago
I have seen the same behaviour when assigning homework. I used the image with ID 63ee29abd54b
, which is not the most up-to-date version (I am currently in the process of docker pull
-ing the latest image).
This is a serious bug because it makes teaching with the CoCalc Docker image impossible.
Tried it with the currently latest image, ID de641cb0215a
. The problem still persists. If I assign a homework that lives in my teacher's project in assignments/task
, then the leaf directory task
will be correctly chown
-ed to the student's ID. However, the assignments
directory will be owned by root
within the student's project, permissions 700
, making it inaccessible for the student. The fix should be to chown -R
the whole copied hierarchy.
Workaround: The "teacher" user must keep the homework directories in his/her top-level project directory and assign them from there. Then the assignments end up in the top-level project directories of the students and they will be correctly chown
-ed.
The saga continues: With the workaround described in my previous comment I can assign a homework, but I cannot collect it from the student, see attached screenshot. Obviously the same problem: chown
is invoked in a "non-recursive manner so that after the copy operation which is performed as root
only the leaf directory is chown
-ed to the user, the enclosing directories in the path are left owned by root
.
This is now fixed in master, and will be in the next cocalc-docker image that I post to dockerhub (should be sometime today).
Pushing new image now.
Many thanks! I can confirm that homework assignment/collection works as expected in the Intel version of the CoCalc Docker container.
When a nested folder is distributed as a handout, the files are correctly moved form the 'course' project to the student's project, and the ownership of the contained folder is correctly set.
Unfortunately the lowest folder has 'root' as owner and can't be opened by the student. The course project assignment folder does not have the root owner.