From fcf9fcbb7ff7d4c094fedf6d6118f796e18cd29f Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Sun, 13 Oct 2024 13:32:44 -0400 Subject: [PATCH] only chown when ownership change or new install detected --- README.md | 4 ++-- readme-vars.yml | 4 ++-- root/etc/s6-overlay/s6-rc.d/init-code-server/run | 16 ++++++++-------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 0a06b9b..f307efd 100644 --- a/README.md +++ b/README.md @@ -141,7 +141,7 @@ Containers are configured using parameters passed at runtime (such as those abov | `-e HASHED_PASSWORD=` | Optional web gui password, overrides `PASSWORD`, instructions on how to create it is below. | | `-e SUDO_PASSWORD=password` | If this optional variable is set, user will have sudo access in the code-server terminal with the specified password. | | `-e SUDO_PASSWORD_HASH=` | Optionally set sudo password via hash (takes priority over `SUDO_PASSWORD` var). Format is `$type$salt$hashed`. | -| `-e PROXY_DOMAIN=code-server.my.domain` | If this optional variable is set, this domain will be proxied for subdomain proxying. See [Documentation](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#sub-domains) | +| `-e PROXY_DOMAIN=code-server.my.domain` | If this optional variable is set, this domain will be proxied for subdomain proxying. See [Documentation](https://github.com/coder/code-server/blob/main/docs/guide.md#using-a-subdomain) | | `-e DEFAULT_WORKSPACE=/config/workspace` | If this optional variable is set, code-server will open this directory by default | | `-v /config` | Contains all relevant configuration files. | @@ -307,7 +307,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions -* **13.10.24:** - Ignore dev/cache folders during chown. +* **13.10.24:** - Only chown config folder when change to ownership or new install is detected. * **09.10.24:** - Manage permissions in /config/.ssh according to file type * **19.08.24:** - Rebase to Ubuntu Noble. * **01.07.23:** - Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf) diff --git a/readme-vars.yml b/readme-vars.yml index 74939c2..3a3cff9 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -27,7 +27,7 @@ opt_param_env_vars: - {env_var: "HASHED_PASSWORD", env_value: "", desc: "Optional web gui password, overrides `PASSWORD`, instructions on how to create it is below."} - {env_var: "SUDO_PASSWORD", env_value: "password", desc: "If this optional variable is set, user will have sudo access in the code-server terminal with the specified password."} - {env_var: "SUDO_PASSWORD_HASH", env_value: "", desc: "Optionally set sudo password via hash (takes priority over `SUDO_PASSWORD` var). Format is `$type$salt$hashed`."} - - {env_var: "PROXY_DOMAIN", env_value: "code-server.my.domain", desc: "If this optional variable is set, this domain will be proxied for subdomain proxying. See [Documentation](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#sub-domains)"} + - {env_var: "PROXY_DOMAIN", env_value: "code-server.my.domain", desc: "If this optional variable is set, this domain will be proxied for subdomain proxying. See [Documentation](https://github.com/coder/code-server/blob/main/docs/guide.md#using-a-subdomain)"} - {env_var: "DEFAULT_WORKSPACE", env_value: "/config/workspace", desc: "If this optional variable is set, code-server will open this directory by default"} # application setup block @@ -47,7 +47,7 @@ app_setup_block: | How to create the [hashed password](https://github.com/cdr/code-server/blob/master/docs/FAQ.md#can-i-store-my-password-hashed). # changelog changelogs: - - {date: "13.10.24:", desc: "Ignore dev/cache folders during chown."} + - {date: "13.10.24:", desc: "Only chown config folder when change to ownership or new install is detected."} - {date: "09.10.24:", desc: "Manage permissions in /config/.ssh according to file type"} - {date: "19.08.24:", desc: "Rebase to Ubuntu Noble."} - {date: "01.07.23:", desc: "Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf)"} diff --git a/root/etc/s6-overlay/s6-rc.d/init-code-server/run b/root/etc/s6-overlay/s6-rc.d/init-code-server/run index c002072..c0fcead 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-code-server/run +++ b/root/etc/s6-overlay/s6-rc.d/init-code-server/run @@ -26,14 +26,14 @@ if [[ ! -f /config/.profile ]]; then cp /root/.profile /config/.profile fi -# fix permissions (ignore contents of workspace and cache folders) -find /config \ - -path "/config/workspace" -prune -o \ - -path "/config/.npm" -prune -o \ - -path "/config/.rustup" -prune -o \ - -path "/config/.cargo" -prune -o \ - -exec lsiown abc:abc {} + -lsiown abc:abc /config/workspace +# fix permissions (ignore contents of workspace) +PUID=${PUID:-911} +if [[ ! "$(stat -c %u /config/.profile)" == "${PUID}" ]]; then + echo "Change in ownership or new install detected, please be patient while we chown existing files" + echo "This could take some time" + find /config -path "/config/workspace" -prune -o -exec lsiown abc:abc {} + + lsiown abc:abc /config/workspace +fi chmod 700 /config/.ssh if [[ -n "$(ls -A /config/.ssh)" ]]; then find /config/.ssh/ -type d -exec chmod 700 '{}' \;