shadowsocks: Fix incorrect setting of state directory

Commit 50e5608331330b37c0b9cce846e34ccc193d1b0d incorrectly sets the
StateDirectory without setting DynamicUser. Buster's shadowsocks will then
create directory /var/lib/shadowsocks-libev/freedombox/ and refuse to delete it
in later versions when DynamicUser=yes needs it to be a symlink.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Nektarios Katakis <iam@nektarioskatakis.xyz>
This commit is contained in:
Sunil Mohan Adapa 2020-03-17 13:18:17 -07:00 committed by Nektarios Katakis
parent f2c451720d
commit 79a9948290
No known key found for this signature in database
GPG Key ID: 9CA475E691EBCF76
3 changed files with 16 additions and 1 deletions

View File

@ -7,6 +7,7 @@ Helper script for configuring Shadowsocks.
import argparse
import json
import os
import pathlib
import random
import string
import sys
@ -65,6 +66,19 @@ def subcommand_setup(_):
}
_merge_config(initial_config)
# Commit 50e5608331330b37c0b9cce846e34ccc193d1b0d incorrectly sets the
# StateDirectory without setting DynamicUser. Buster's shadowsocks will
# then create directory /var/lib/shadowsocks-libev/freedombox/ and refuse
# to delete is in later versions when DynamicUser=yes needs it to be a
# symlink.
action_utils.service_daemon_reload()
wrong_state_dir = pathlib.Path('/var/lib/shadowsocks-libev/freedombox/')
if not wrong_state_dir.is_symlink() and wrong_state_dir.is_dir():
wrong_state_dir.rmdir()
if action_utils.service_is_enabled(shadowsocks.managed_services[0]):
action_utils.service_restart(shadowsocks.managed_services[0])
def subcommand_get_config(_):
"""Read and print Shadowsocks configuration."""

View File

@ -15,7 +15,7 @@ from plinth.utils import format_lazy
from .manifest import backup # noqa, pylint: disable=unused-import
version = 2
version = 3
managed_services = ['shadowsocks-libev-local@freedombox']

View File

@ -1,2 +1,3 @@
[Service]
StateDirectory=shadowsocks-libev/%i
DynamicUser=yes