Created
January 30, 2023 22:10
-
-
Save epifanio/ef310562ab64a4cdebc8dbaf2b72f93a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# set permissions on a directory | |
# after any installation, if a directory needs to be (human) user-writable, | |
# run this script on it. | |
# It will make everything in the directory owned by the group $NB_GID | |
# and writable by that group. | |
# Deployments that want to set a specific user id can preserve permissions | |
# by adding the `--group-add users` line to `docker run`. | |
# uses find to avoid touching files that already have the right permissions, | |
# which would cause massive image explosion | |
# right permissions are: | |
# group=$NB_GID | |
# AND permissions include group rwX (directory-execute) | |
# AND directories have setuid,setgid bits set | |
set -e | |
for d in "$@"; do | |
find "$d" \ | |
! \( \ | |
-group $NB_GID \ | |
-a -perm -g+rwX \ | |
\) \ | |
-exec chgrp $NB_GID {} \; \ | |
-exec chmod g+rwX {} \; | |
# setuid, setgid *on directories only* | |
find "$d" \ | |
\( \ | |
-type d \ | |
-a ! -perm -6000 \ | |
\) \ | |
-exec chmod +6000 {} \; | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment