Package: ddclient
Version: 3.8.2-2
Severity: minor


-- System Information:
Debian Release: 8.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages ddclient depends on:
ii  debconf [debconf-2.0]  1.5.56
ii  initscripts            2.88dsf-59
ii  lsb-base               4.1+Debian13+nmu1
ii  perl [perl5]           5.20.2-3+deb8u4

Versions of packages ddclient recommends:
ii  libio-socket-ssl-perl  2.002-2+deb8u1

ddclient suggests no packages.

-- Configuration Files:
/etc/init.d/ddclient changed: I added 4 lines, DDCLIENT_USER, DDCLIENT_GROUP, 
touch, chown
PATH=/sbin:/bin:/usr/sbin:/usr/bin
NAME="ddclient"
DAEMON=/usr/sbin/$NAME
PERL=/usr/bin/perl
DESC="Dynamic DNS service update utility"
test -f $DAEMON || exit 0
run_daemon=false
daemon_interval=300
if [ -r /etc/default/ddclient ]; then
  . /etc/default/ddclient
fi
PIDFILE=/var/run/$NAME.pid
OPTIONS="-daemon $daemon_interval -syslog -pid $PIDFILE"
DDCLIENT_USER=ddclient
DDCLIENT_GROUP=ddclient
.. /lib/init/vars.sh
.. /lib/lsb/init-functions
do_start()
{
        if [ "$run_daemon" != "true" ]; then
                return 0
        fi
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        start-stop-daemon --test --start --quiet \
                --chuid $DDCLIENT_USER \
                --pidfile $PIDFILE --exec $PERL --startas $DAEMON \
                >/dev/null \
                || return 1
        touch "$PIDFILE" "/var/cache/ddclient/ddclient.cache"
        chown $DDCLIENT_USER "$PIDFILE" "/var/cache/ddclient/ddclient.cache"
        start-stop-daemon --start \
                --chuid $DDCLIENT_USER \
                --pidfile $PIDFILE --exec $PERL --startas $DAEMON \
                -- $OPTIONS \
                || return 2
}
do_stop()
{
        if [ "$run_daemon" != "true" ]; then
                return 0
        fi
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
        start-stop-daemon --stop --retry=TERM/30/KILL/5 \
                --chuid $DDCLIENT_USER \
                --pidfile $PIDFILE --exec $PERL
        return "$?"
}
case "$1" in
  start)
        if [ "$run_daemon" != "true" ]; then
                log_warning_msg "To run ddclient as a daemon, please set 
run_daemon to 'true' in /etc/default/ddclient "
                log_end_msg 0
                exit 0
        fi
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  stop)
        if [ "$run_daemon" != "true" ]; then
                log_warning_msg "To run ddclient as a daemon, please set 
run_daemon to 'true' in /etc/default/ddclient "
                log_end_msg 0
                exit 0
        fi
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  status)
        echo -n "Status of $DESC: "
        if [ ! -r "$PIDFILE" ]; then
                echo "$NAME is not running."
                exit 3
        fi
        if read pid < "$PIDFILE" && ps -p "$pid" > /dev/null 2>&1; then
                echo "$NAME is running."
                exit 0
        else
                echo "$NAME is not running but $PIDFILE exists."
                exit 1
        fi
        ;;
        
 
  restart|force-reload)
        if [ $run_daemon != "true" ]; then
                log_warning_msg "To run ddclient as a daemon, please set 
run_daemon to 'true' in /etc/default/ddclient "
                log_end_msg 0
                exit 0
        fi
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        N=/etc/init.d/$NAME
        # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        log_success_msg "Usage: $N {start|stop|restart|force-reload}" 
        exit 1
        ;;
esac
exit 0


-- debconf information excluded


Here is the debconf information, with username, password and service name 
blanked

*** The following debconf settings were detected:
* ddclient/server: xxx.xxx.de
  ddclient/blankhostslist:
  ddclient/daemon_interval: 300
* ddclient/password-mismatch:
* ddclient/checkip: false
* ddclient/names: xxx.xxx.de
* ddclient/service: other
* ddclient/interface:
  ddclient/modifiedconfig:
  ddclient/hostslist:
  ddclient/run_dhclient: false
* ddclient/username: xxx
  ddclient/run_ipup: true
  ddclient/run_daemon: false
* ddclient/protocol: dyndns2
* ddclient/fetchhosts: Manually


I manually added user and group ddclient to my system, and manually
chown ddclient.ddclient /etc/ddclient.conf
chown ddclient.ddclient /etc/default/ddclient


Now for me it perfectly runs as non root user with /etc/ddclient.conf:

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

daemon=5m
server=xxx.xxx.de
protocol=dyndns2
use=web

login=xxx
password='xxx'
host=xxx.xxx.de
ssl=yes
verbose=yes

Reply via email to