Viele Relaisbetreiber finden es offensichtlich zu kompliziert, mit dem Startskript dass Relais in einem sicheren Modus als Benutzer "svxlink" zu betreiben. Sie verzweifeln relativ schnell am Setzen der richtigen Rechte und das Ergebnis ist dann der Betrieb unter "root".
Daher an dieser Stelle noch einmal der Appell: Server, wenn es geht, nicht unter root betreiben, sondern den vorgesehen user svxlink.
wie geht das? (wenn ich ein Relais mit debian oder ubuntu betreibe, HW-Squelch und PTT über serielle Schnittstelle anschließe)
- Rechte für svxlink setzen, so dass die serielle Schnittstelle für HW-Squelch und PTT-Steuerung möglich
- Rechte setzen für den Zugriff auf die Audiokarte
- aus root heraus user svxlink werden und damit die Rechte erproben
- Verwenden des geänderten Startskripts (s.u.)
- Anpassung der Defaultwerte in /etc/default/svxlink
- alle notwendigen Directories und Dateien auf die richtigen Rechte setzen, so dass user svxlink zugreifen kann
- Startskript mit "/etc/init.d/svxlink start" erproben
- vorher verwendete Startskripte deaktivieren
- Startskript als Startskript im Betriebssystem vereinbaren
- Rechner neu starten
Voraussetzung: debian squeeze oder wheezy (momentaner Stand)
- User svxlink mit Gruppe svxlink sind eingerichtet, es gibt ggf. sogar ein Homeverzeichnis /home/svxlink
- in /etc/default/svxlink werden alle notwendigen Vereinbarungen, insbesondere RUNASUSER=svxlink getroffen
- root werden und svxlink spätestens bei Schritt 5 abschalten
zu 1+2
Ist svxlink in den Gruppen audio und dialout?
und ggf. weitere Gruppen
Diese können eingestellt werden mit
zu 3
Aufruf: svxlink
Jetzt sollte svxlink im Terminal arbeiten und normal starten und arbeiten: also mal mit Tastatur "*" Relais öffnen
Mit "q" Relais verlassen / beenden und mit
exit
wieder root werden
zu 4
geändertes Startskript /etc/init.d/svxlink
#!/bin/sh### BEGIN INIT INFO# Provides: svxlink# Required-Start: $network $local_fs $syslog $ntp# Required-Stop: # Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: Start SvxLink Server daemon### END INIT INFO# Use the following command to activate the start script# update-rc.d svxlink start 30 2 3 4 5 . stop 70 0 1 6 .PATH=/sbin:/bin:/usr/sbin:/usr/bin. /lib/lsb/init-functionsPNAME=svxlinkNAME="SvxLink Server"DAEMON=/usr/bin/$PNAMEtest -x $DAEMON || exit 5if [ -r /etc/default/$PNAME ]; then . /etc/default/$PNAMEfi# higher process- and io priority needed for small computerIOSHED="real-time:1"NICEPRIO="-10"POPTS="--daemon ${PIDFILE:+--pidfile=$PIDFILE} ${LOGFILE:+--logfile=$LOGFILE} ${CFGFILE:+--config=$CFGFILE}"USERRUN="${RUNASUSER:+--chuid $RUNASUSER:$RUNASUSER}"HOMEDIR="-d /home/svxlink"create_logfile(){ touch $LOGFILE if [ -n "$RUNASUSER" ]; then chown $RUNASUSER.$RUNASUSER $LOGFILE fi}case $1 in start) log_daemon_msg "Starting $NAME: $PNAME" create_logfile export $ENV start-stop-daemon --start $USERRUN $HOMEDIR --pidfile $PIDFILE \ --iosched $IOSHED --nicelevel $NICEPRIO --startas $DAEMON -- $POPTS log_end_msg $? ;; stop) log_daemon_msg "Stopping $NAME: $PNAME" start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE log_end_msg $? rm -f $PIDFILE ;; restart|force-reload) $0 stop && sleep 2 && $0 start ;; try-restart) if $0 status >/dev/null; then $0 restart else exit 0 fi ;; reload) exit 3 ;; status) pidofproc -p $PIDFILE $DAEMON >/dev/null status=$? if [ $status -eq 0 ]; then log_success_msg "$NAME is running." else log_failure_msg "$NAME is not running." fi exit $status ;; *) echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}" exit 2 ;;esac
zu 6:
chown -R svxlink.svxlink /etc/svxlinkchown -R svxlink.svxlink /usr/share/svxlinkchown -R svxlink.svxlink /var/spool/svxlinkchown svxlink.svxlink /var/log/svxlink*
zu 7:
erproben mit
überprüfen von Fehlermeldungen im Logbuch (/var/log/svxlink.log)
zu 9:
siehe oben im Skript
nun würde mich interessieren, ob jemand Schwierigkeiten bei der Verwendung und Einrichtung dieser Tipps hat.
vy 73
Michael
DK5HH