{"id":22999186,"url":"https://github.com/gutow/tljh_grp_utils","last_synced_at":"2025-08-14T00:32:48.638Z","repository":{"id":40694525,"uuid":"273813075","full_name":"gutow/tljh_grp_utils","owner":"gutow","description":"Some utilities for managing shared directories for littlest jupyter hub users","archived":false,"fork":false,"pushed_at":"2022-06-27T01:36:56.000Z","size":19,"stargazers_count":15,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-15T15:02:37.665Z","etag":null,"topics":["administration","hub-users","jupyterhub","sharing-data","sharing-notebooks","tljh"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gutow.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"license-GPLV3+.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-21T01:26:46.000Z","updated_at":"2024-02-12T18:34:08.000Z","dependencies_parsed_at":"2022-07-20T14:02:51.017Z","dependency_job_id":null,"html_url":"https://github.com/gutow/tljh_grp_utils","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gutow%2Ftljh_grp_utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gutow%2Ftljh_grp_utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gutow%2Ftljh_grp_utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gutow%2Ftljh_grp_utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gutow","download_url":"https://codeload.github.com/gutow/tljh_grp_utils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229786958,"owners_count":18124014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["administration","hub-users","jupyterhub","sharing-data","sharing-notebooks","tljh"],"created_at":"2024-12-15T06:15:52.309Z","updated_at":"2024-12-15T06:15:52.968Z","avatar_url":"https://github.com/gutow.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The littlest Jupyter Hub Group Utilities\n\nThis repository contains tools developed to facilitate creating groups\nof hub users that can share files with each other both in a fixed\n\"published\" form and a \"shared\" form that can be edited by anybody in\nthe group. These tools were developed primarily with the administration\nof small groups (University Classes) in mind. The sharing mechanism is\nbased on the ideas discussed in this\n[github issue](https://github.com/jupyterhub/jupyterhub/issues/394).\n\nUsing these tools presently requires a three step process (assuming\na working littlest jupyterhub installation with users):\n\n1. Run the script to create the group and its shared space:\n`sudo ./mkhubgrp \u003cgrpname\u003e`. The group name should be one word. The\ngroup `hub_\u003cgrpname\u003e` will be created and the shared space located\nat `/opt/hubshare/\u003cgrpname\u003e`. The location was chosen so that you will not\nforget about the directories if you are removing tljh.\n1. Populate the group with the appropriate hub users:\n`sudo gpasswd -M jupyter-userA,jupyter-userB,jupyter-userC,... hub_\u003cgrpname\u003e`.\n__Make sure there are no spaces after the commas separating the usernames.__\n1. Create a link in each group member's home directory to the shared\ndirectory: `sudo ./lnhubgrp \u003cgrpname\u003e`. The link does not reliably appear\nuntil the user restarts their server.\n\nThere are two subfolders within the shared folder:\n1. `shared` any documents created initially in this folder can be modified by\n    all members of the group. Things copied to this folder will maintain their\n    original permissions, which typically only allow reading by the group.\n1. `published` documents created in subfolders of this folder can not be\n    modified or deleted by other members of the group, only the owner.\n    However, all members of the group can read and copy these documents.\n    Documents should not be saved directly in the `published`\n    folder because any member of the group can delete them, but not edit.\n     \nHope this is useful to some. I encourage someone to integrate this into\nthe jupyterhub administrative web interface.\n\nJonathan Gutow \u003cgutow@uwosh.edu\u003e | \nJune 2020 | \nlicense: GPLV3+","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgutow%2Ftljh_grp_utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgutow%2Ftljh_grp_utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgutow%2Ftljh_grp_utils/lists"}