Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

fix-permissions

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    fix-permissions 963 B
    #!/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