sagemathinc / cocalc-docker

DEPRECATED (was -- Docker setup for running CoCalc as downloadable software on your own computer)
https://cocalc.com
Other
398 stars 103 forks source link

Base folder of distributed handout has root permissions #146

Closed vdtoorn closed 2 years ago

vdtoorn commented 2 years ago

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.

aaszodi commented 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.

aaszodi commented 2 years ago

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.

aaszodi commented 2 years ago

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.

Screen Shot 2021-12-28 at 11 34 18
williamstein commented 2 years ago

This is now fixed in master, and will be in the next cocalc-docker image that I post to dockerhub (should be sometime today).

williamstein commented 2 years ago

Pushing new image now.

aaszodi commented 2 years ago

Many thanks! I can confirm that homework assignment/collection works as expected in the Intel version of the CoCalc Docker container.