未验证 提交 3339853c 编写于 作者: A Asher

Avoid root when prefix is writable

Previously if the prefix was non-existent we would switch to root even
if the user does have the permissions to create the directory.

Fixes #3585
上级 6045fdd3
......@@ -24,6 +24,24 @@ jobs:
- name: Test code-server
run: yarn test:standalone-release code-server
alpine:
name: Test installer on Alpine
runs-on: ubuntu-latest
container: "alpine:3.14"
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Install curl
run: apk add curl
- name: Add user
run: adduser coder --disabled-password
# Standalone should work without root.
- name: Test standalone to a non-existent prefix
run: su coder -c "./install.sh --method standalone --prefix /tmp/does/not/yet/exist"
macos:
name: Test installer on macOS
runs-on: macos-latest
......
......@@ -132,7 +132,6 @@ main() {
unset \
DRY_RUN \
METHOD \
STANDALONE_INSTALL_PREFIX \
OPTIONAL \
ALL_FLAGS \
RSH_ARGS \
......@@ -381,6 +380,10 @@ install_standalone() {
fetch "https://github.com/cdr/code-server/releases/download/v$VERSION/code-server-$VERSION-$OS-$ARCH.tar.gz" \
"$CACHE_DIR/code-server-$VERSION-$OS-$ARCH.tar.gz"
# -w only works if the directory exists so try creating it first. If this
# fails we can ignore the error as the -w check will then swap us to sudo.
sh_c mkdir -p "$STANDALONE_INSTALL_PREFIX" 2> /dev/null || true
sh_c="sh_c"
if [ ! -w "$STANDALONE_INSTALL_PREFIX" ]; then
sh_c="sudo_sh_c"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册