Mit dem Synology DiskStation Manager DSM 6.0 kam es zu Sicherheitsanpassungen beim SSH-Login: Selbst wenn ein Administrator auf einem Synology NAS SSH aktiviert, können sich normale Benutzer per SSH nicht auf dem NAS einloggen. Dies ist nur mit Benutzern möglich, die der Administrator-Gruppe zugeteilt sind.
Um diese Anpassung im Namen der Sicherheit rückgängig zu machen, bin ich dem Blog-Artikel Howto: (re-)Enable SCP/SSH Login on Synology DSM 6.0 for non admin users [UPDATE] gefolgt. Der Grund ist trivial: Synology setzt für normale Benutzer in /etc/passwd ein unbrauchbares Login-Shell: /sbin/nologin
Die Lösung: Ein auf dem NAS hinterlegtes bash-Script wird mittels Cron-Job unter root laufend alle fünf Minuten ausgeführt und ersetzt die Login-Shell ausgewählter Benutzer mit /bin/sh.
/volume1/homes/admin/enable-ssh-logins.sh
#!/bin/bash /usr/bin/awk -i inplace -F: 'BEGIN{OFS=":"}/^dagobert\:/{gsub(/.*/,"/bin/sh",$7)}1' /etc/passwd /usr/bin/awk -i inplace -F: 'BEGIN{OFS=":"}/^donald\:/{gsub(/.*/,"/bin/sh",$7)}1' /etc/passwd /usr/bin/awk -i inplace -F: 'BEGIN{OFS=":"}/^daisy\:/{gsub(/.*/,"/bin/sh",$7)}1' /etc/passwd /usr/bin/awk -i inplace -F: 'BEGIN{OFS=":"}/^huey\:/{gsub(/.*/,"/bin/sh",$7)}1' /etc/passwd /usr/bin/awk -i inplace -F: 'BEGIN{OFS=":"}/^dewey\:/{gsub(/.*/,"/bin/sh",$7)}1' /etc/passwd /usr/bin/awk -i inplace -F: 'BEGIN{OFS=":"}/^louie\:/{gsub(/.*/,"/bin/sh",$7)}1' /etc/passwd exit 0
Cron-Job über DiskStation Manager Web-Oberfläche einrichten
- Control Panel
- Task Scheduler
- Create
- User-defined script
- General
- Task: „Enable Login Shell“
- User: root
- Schedule
- [x] Run on the following days: Daily
- Frequency: Every 5 minute(s)
- Task Settings
- Run command: User-defined script: /volume1/homes/admin/enable-ssh-logins.sh
3 Kommentare Kommentare
Danke für das Script, perfekt :-)
Vielen Dank, wieder ein Beweis dafür wie hilfreich das Netz ist. Eigentlich sollten Admin-User oder Root keine ssh-Rechte haben sondern nur definierte nicht Admins.
Ansonsten sind die Synologies wirklich praktisch.
Das Script funktioniert leider nicht mehr.
Ich erhalte bei Ausführung in der Synology die Info:
„warning: regexp escape sequence `\:‘ is not a known regexp operator“