Rev 8 | Rev 45 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2 | magnus | 1 | #!/bin/sh |
2 | # |
||
3 | # lsh-utils Start/stop secure shell server. |
||
4 | # Written by Timshel Knoll <timshel@debian.org> |
||
5 | # Updated by Stefan Pfetzing <dreamind@dreamind.de> |
||
39 | magnus | 6 | # Updated by Magnus Holmgren <magnus@debian.org> |
2 | magnus | 7 | |
8 | ### BEGIN INIT INFO |
||
39 | magnus | 9 | # Provides: lsh-server |
2 | magnus | 10 | # Required-Start: $local_fs $remote_fs $syslog $named $network |
11 | # Required-Stop: $local_fs $remote_fs $syslog $named $network |
||
39 | magnus | 12 | # X-Start-Before: cman drbd smokeping vz |
13 | # X-Stop-After: cman drbd smokeping vz |
||
2 | magnus | 14 | # Default-Start: 2 3 4 5 |
15 | # Default-Stop: 0 1 6 |
||
16 | # Short-Description: lsh secure shell server |
||
17 | ### END INIT INFO |
||
18 | |||
19 | PATH=/sbin:/bin:/usr/sbin:/usr/bin |
||
20 | DAEMON=/usr/sbin/lshd |
||
21 | NAME=lshd |
||
22 | DESC="secure shell v2 server" |
||
23 | CONFIG=/etc/default/lsh-server |
||
39 | magnus | 24 | PIDFILE=/var/run/$NAME.pid |
2 | magnus | 25 | |
26 | RANDOM_SEED="/var/spool/lsh/yarrow-seed-file" |
||
27 | HOST_KEY="/etc/lsh_host_key" |
||
28 | |||
29 | test -f $DAEMON || exit 0 |
||
30 | |||
39 | magnus | 31 | . /lib/lsb/init-functions |
2 | magnus | 32 | |
39 | magnus | 33 | set +e |
34 | |||
2 | magnus | 35 | if [ -r "$CONFIG" ]; then |
36 | . "$CONFIG" |
||
37 | fi |
||
38 | |||
39 | if [ x"$LSHD_PORT" = x ]; then |
||
40 | LSHD_PORT="22" |
||
41 | fi |
||
42 | |||
43 | case "$ENABLE_SFTP" in |
||
44 | true|y*|Y*) |
||
8 | magnus | 45 | SFTP_FLAG="--subsystems sftp=/usr/lib/lsh-server/sftp-server" |
2 | magnus | 46 | ;; |
47 | *) |
||
48 | SFTP_FLAG="" |
||
49 | ;; |
||
50 | esac |
||
51 | |||
39 | magnus | 52 | create_seed_and_key() { |
2 | magnus | 53 | if [ ! -f "$RANDOM_SEED" ]; then |
39 | magnus | 54 | log_action_begin_msg "Creating lsh random seed file (this only needs to be done once)" |
2 | magnus | 55 | DIR=$(dirname "$RANDOM_SEED") |
39 | magnus | 56 | if install -d -m 700 "$DIR" && |
57 | dd if=/dev/random "of=$RANDOM_SEED" bs=1 count=32 2>/dev/null && |
||
58 | chmod 600 "$RANDOM_SEED"; then |
||
59 | log_action_end_msg 0 |
||
60 | else |
||
61 | log_action_end_msg 1 |
||
62 | exit 1 |
||
63 | fi |
||
2 | magnus | 64 | fi |
65 | |||
66 | if [ ! -f "$HOST_KEY" ]; then |
||
39 | magnus | 67 | log_action_begin_msg "Creating lsh host key (this only needs to be done once)" |
68 | lsh-keygen --server | lsh-writekey --server --output-file "$HOST_KEY" |
||
2 | magnus | 69 | |
70 | if [ ! -f "$HOST_KEY" ]; then |
||
39 | magnus | 71 | log_action_end_msg 1 |
72 | exit 1 |
||
2 | magnus | 73 | fi |
74 | |||
39 | magnus | 75 | log_action_end_msg 0 |
2 | magnus | 76 | fi |
39 | magnus | 77 | } |
2 | magnus | 78 | |
39 | magnus | 79 | |
2 | magnus | 80 | case "$1" in |
81 | start) |
||
39 | magnus | 82 | create_seed_and_key |
83 | [ "$VERBOSE" = no ] || log_daemon_msg "Starting $DESC" "$NAME" |
||
84 | start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON \ |
||
85 | -- --daemonic --port "$LSHD_PORT" $SFTP_FLAG |
||
86 | [ "$VERBOSE" = no ] || log_end_msg $? |
||
2 | magnus | 87 | ;; |
88 | stop|graceful-stop) |
||
39 | magnus | 89 | [ "$VERBOSE" = no ] || log_daemon_msg "Gracefully stopping $DESC" "$NAME" |
2 | magnus | 90 | # Signal 1 causes the "old" lsh to close up shop on its port, but |
91 | # keeps running until all active connections have been closed |
||
39 | magnus | 92 | start-stop-daemon --stop --retry HUP/1 --quiet --pidfile $PIDFILE \ |
93 | --oknodo --exec $DAEMON |
||
94 | [ "$VERBOSE" = no ] || log_end_msg $? |
||
2 | magnus | 95 | ;; |
96 | restart|force-reload) |
||
39 | magnus | 97 | create_seed_and_key |
98 | [ "$VERBOSE" = no ] || log_daemon_msg "Restarting $DESC" "$NAME" |
||
99 | start-stop-daemon --stop --retry HUP/1 --quiet --pidfile $PIDFILE \ |
||
100 | --oknodo --exec $DAEMON && |
||
101 | start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON \ |
||
102 | -- --daemonic --port "$LSHD_PORT" $SFTP_FLAG |
||
103 | [ "$VERBOSE" = no ] || log_end_msg $? |
||
2 | magnus | 104 | ;; |
39 | magnus | 105 | status) |
106 | status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? |
||
107 | ;; |
||
2 | magnus | 108 | *) |
109 | echo "Usage: /etc/init.d/lsh-utils {start|stop|restart|force-reload}" >&2 |
||
39 | magnus | 110 | exit 3 |
2 | magnus | 111 | ;; |
112 | esac |