Alle User im DSM anzeigen

Status
Für weitere Antworten geschlossen.

cp389

Benutzer
Mitglied seit
07. Jan 2014
Beiträge
532
Punkte für Reaktionen
5
Punkte
44
Hallo zusammen,

mit dem Befehl "cat /etc/passwd" lassen sich im Terminal alle vorhandenen Benutzer anzeigen.
Kennt jemand eine Möglichkeit, wie man sich alle (oder eine Auswahl) an Benutzern, die man ohne weiteres nicht im DSM sieht, dort anzeigen lassen kann?

Ich meine damit solche Benutzer wie:
couchpotatoserver
headphones
nzbget
nzbmegasearch
plex
pyload
sickbeard
sickbeard-custom

wobei ich erstaunlicherweise die Benutzer "plex" und "pyload" im DSM sehen kann.

Aber was ist mit dem Rest?
 

cp389

Benutzer
Mitglied seit
07. Jan 2014
Beiträge
532
Punkte für Reaktionen
5
Punkte
44
So gehts: Anleitung

Ich hab mich jetzt mal intensiv damit auseinander gesetzt und möchte Euch daran teilhaben lassen.
Änderungen auf eigene Gefahr!

Hintergrund
Ziel dieser Anleitung ist es, Benutzern, die von beliebigen Paketen angelegt worden sind, auf einfache Art und Weise Lese- und Schreibrechte auf verschiedene Freigaben zu gewähren oder zu entziehen, und das mittels der Benutzerverwaltung des DSM.
Dies ist zum Beispiel nötig, wenn ein Post Processing Script von NZBget Aktionen außerhalb seines Bereiches durchführen soll. Oft erscheint dann im Log-File permission denied, da dem Benutzer vorher nicht die nötigen Rechte eingeräumt wurden.

Um dies zu vereinfachen, sind nur ein paar Schritte nötig. Wir blenden den Benutzer einfach ein und verwalten ihn dann wie einen normalen Benutzer.

Warum ist das überhaupt nötig?
Im DSM werden nur Benutzer mit einer UID ab 1024 angezeigt, wobei 1024 für den admin reserviert ist.
Viele Benutzer, die von Paketen angelegt werden, erhalten jedoch eine UID im 100er-Bereich und bleiben somit verborgen.

Was ist die UID?
Jeder Benutzer besitzt eine user ID (UID). Diese sind normalerweise eineindeutig. Die UID 0 ist für root reserviert. 1-99 sind für systemnahe Dienste reserviert, 100-999 für andere System-Benutzer.

Aufbau der Einträge in der passwd-Datei:

Rich (BBCode):
nzbget:x:101:100:NZBGet User:/usr/local/nzbget/var:/bin/sh
______ _ ___ ___ ___________ _____________________ _______
   |   |  |   |       |                 |             |
   |   |  |   |       |                 |             +———> 7
   |   |  |   |       |                 |
   |   |  |   |       |                 +————————————————-> 6
   |   |  |   |       |
   |   |  |   |       +——————————————————————————————————-> 5
   |   |  |   |
   |   |  |   +——————————————————————————————————————————-> 4
   |   |  |
   |   |  +———————————————————————————————————————————————> 3
   |   |
   |   +——————————————————————————————————————————————————> 2
   |
   +——————————————————————————————————————————————————————> 1

1. Benutzername (= der Login-Name)
2. Passwort (x bedeutet, dass ein verschlüsseltes Passwort in der Datei /etc/shadow gespeichert ist)
3. User ID (UID)
4. Group ID (GID)
5. Beschreibung des Users
6. home-Verzeichnis des Benutzers
7. Absoluter Pfad zum command oder shell

Kommen wir also zur Sache.

Wie verbinden uns als root via SSH auf die DiskStation und lassen uns die vorhanden Benutzer anzeigen:

Rich (BBCode):
DS> cat /etc/passwd

So sieht das Ergebnis bei mir aus:

Rich (BBCode):
admin:x:1024:100:System default user:/var/services/homes/admin:/bin/sh
anonymous:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
couchpotatoserver:x:100:100:CouchPotato User:/usr/local/couchpotatoserver/var:/bin/sh
dovecot:x:143:143:Dovecot User:/nonexist:/sbin/nologin
ftp:x:21:21:Anonymous FTP User:/nonexist:/sbin/nologin
guest:x:1025:100:Guest:/nonexist:/bin/sh
headphones:x:102:100:Headphones User:/usr/local/headphones/var:/bin/sh
http:x:1023:1023::/var/services/web:/bin/false
iMac:x:1030:100:Time Machine user:/var/services/homes/iMac:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
MacBookPro:x:1031:100:Time Machine user:/var/services/homes/MacBookPro:/sbin/nologin
Manu:x:1032:100::/var/services/homes/Manu:/sbin/nologin
mysql:x:66:66::/var/services/mysql:/bin/false
nobody:x:99:99::/:/bin/false
nzbget:x:101:100:NZBGet User:/usr/local/nzbget/var:/bin/sh
nzbmegasearch:x:103:100:NZBmegasearcH User:/usr/local/nzbmegasearch/var:/bin/sh
plex:x:1026:100:daemon user for Plex Media Server:/var/services/homes/plex:/bin/csh
postfix:x:125:125:Postfix User:/nonexist:/sbin/nologin
postgres:x:55:55::/var/services/pgsql:/bin/sh
pyload:x:1045:100:daemon user for pyLoad:/var/services/homes/pyload:/sbin/nologin
root:x:0:0:root:/root:/bin/ash
SamsungTV:x:1028:100::/var/services/homes/SamsungTV:/sbin/nologin
Sebastian:x:1029:100::/var/services/homes/Sebastian:/sbin/nologin
sickbeard:x:105:100:SickBeard User:/usr/local/sickbeard/var:/bin/sh
sickbeard-custom:x:104:100:SickBeard Custom User:/usr/local/sickbeard-custom/var:/bin/sh
smmsp:x:25:25:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin
spamfilter:x:783:99:Spamassassin User:/var/spool/postfix:/sbin/nologin

Wir wollen nur bestimmte Benutzer sehen, daher kopieren wir uns die Ausgabe in einen Text-Editor und verbessern die Übersichtlichkeit, indem wir „echte“ Systembenutzer entfernen und die relevanten Informationen als Tabelle darstellen:

Rich (BBCode):
couchpotatoserver   :x   :100   :100:CouchPotato User:/usr/local/couchpotatoserver/var:/bin/sh
headphones          :x   :102   :100:Headphones User:/usr/local/headphones/var:/bin/sh
nzbget              :x   :101   :100:NZBGet User:/usr/local/nzbget/var:/bin/sh
nzbmegasearch       :x   :103   :100:NZBmegasearcH User:/usr/local/nzbmegasearch/var:/bin/sh
plex                :x   :1026  :100:daemon user for Plex Media Server:/var/services/homes/plex:/bin/csh
pyload              :x   :1045  :100:daemon user for pyLoad:/var/services/homes/pyload:/sbin/nologin
sickbeard           :x   :105   :100:SickBeard User:/usr/local/sickbeard/var:/bin/sh
sickbeard-custom    :x   :104   :100:SickBeard Custom User:/usr/local/sickbeard-custom/var:/bin/sh

Die Benutzer vom Plex Media Server und pyLoad waren schon korrekt angelegt und müssen demzufolge nicht weiter beachtet werden. Konzentrieren wir uns also im Beispiel auf nzbget. Dabei handelt es sich um den Benutzer, der von dem Paket NZBget angelegt und genutzt wird.

Dazu wird NZBget über das Paketzentrum in der Weboberfläche (DSM) gestoppt.

Zurück im Terminal, editieren wir anschließend die Datei /etc/passwd mit einem beliebigen Editor (ich benutze gern den im Midnight Commander integrierten) und ändern die UID von 101 nach 1051. Wichtig dabei ist, dass die UID noch nicht vorhanden ist! Unbedingt muss man sich die alte UID merken, denn die brauchen wir gleich noch. Am besten aufschreiben.

Die Änderungen speichern, Editor schließen.
Ab diesem Punkt wird die Benutzerverwaltung im DSM nichts mehr anzeigen, aber das ignorieren wir für den Moment.

Anschließend müssen die Dateien des Benutzers noch der neuen UID zugeordnet werden.
Wer sich vorher einen Überblick verschaffen will, welche Dateien betroffen sein werden, kann dies mit folgendem Befehl tun, wobei 101 der alten UID entspricht:

Rich (BBCode):
DS> find / -user 101 -print

Dann führen wir die Änderungen durch, mit folgendem Befehl:

Rich (BBCode):
DS> find /volume1/ -user 101 -print -exec chown nzbget {} \;

Das Durchsuchen mit find / … dauert unter Umständen recht lange, garantiert jedoch, dass auch tatsächlich alle Dateien erwischt werden und somit auch sämtliche Funktionalitäten erhalten bleiben.

Ist der Vorgang abgeschlossen, starten wir die DS neu. Das geschieht entweder über den DSM oder direkt im Terminal mit dem Befehl

Rich (BBCode):
DS> reboot

Nach dem erfolgten Neustart zeigt die Benutzerverwaltung nun den zusätzlichen Benutzer nzbget an, der sich wie ein normaler Benutzer verwalten lässt.
Jetzt noch den NZBget-Dienst im Paketzentrum starten. Fertig.

Das ganze einfach für alle gewünschten Benutzer wiederholen und dabei immer darauf achten, dass Ihr keine UID vergebt, die schon vorhanden ist.
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.709
Punkte für Reaktionen
1.017
Punkte
754
Ganz hervorragend, vielen Dank dafür!
 

SevenUp

Benutzer
Mitglied seit
18. Mai 2014
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Auch von mir ein DANKE!
BitTorrent Sync läuft nun einwandfrei zwischen einem Synology DS213j und ZyXEL NSA325v2
 

cupitronic

Benutzer
Mitglied seit
12. Sep 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Zurück im Terminal, editieren wir anschließend die Datei /etc/passwd mit einem beliebigen Editor (ich benutze gern den im Midnight Commander integrierten) und ändern die UID von 101 nach 1051.

Wie genau mache ich das im Terminal?
 

Puppetmaster

Benutzer
Sehr erfahren
Mitglied seit
03. Feb 2012
Beiträge
18.973
Punkte für Reaktionen
615
Punkte
484
Die Frage ist ein bisschen zu allgemein, um sie zielgerichtet und kurz beantworten zu können.

Was genau ist das Problem? Wie gut kennst du dich auf der Konsole aus?
 

cupitronic

Benutzer
Mitglied seit
12. Sep 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Ich habe deine Anleitung im Terminal über Mac OS nachvollzogen. Die UID zu ändern, ich wüsste nicht wie.
 

Puppetmaster

Benutzer
Sehr erfahren
Mitglied seit
03. Feb 2012
Beiträge
18.973
Punkte für Reaktionen
615
Punkte
484
Hm, steht doch in Post#2, wie das geht...

Übrigens ist das nicht meine Anleitung.
 

cupitronic

Benutzer
Mitglied seit
12. Sep 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
danke für die Hilfe an einen Terminal Unkundigen. Ich versuch mir dann woanders die Info zu holen, mit welchem Befehl ich etc/passwd editiere.
 

laserdesign

Benutzer
Mitglied seit
11. Jan 2011
Beiträge
2.530
Punkte für Reaktionen
38
Punkte
94
Hallo,

warum so bockig, frage doch konkret dann wird dir auch geholfen.

Wenn du Terminal unkundig bist, schau doch mal ins WIKI oder benutze die SuFu.

Hier steht wie du auf den Terminal kommst und hier steht wie du editieren kannst.

Hast du dann noch Fragen, melde dich noch einmal.
 

Puppetmaster

Benutzer
Sehr erfahren
Mitglied seit
03. Feb 2012
Beiträge
18.973
Punkte für Reaktionen
615
Punkte
484
Eigentlich ist es ganz einfach: konkrete Frage -> konkrete Antwort.

Zumindest ich habe immer noch nicht verstanden, wo es nun hakt.
 

cp389

Benutzer
Mitglied seit
07. Jan 2014
Beiträge
532
Punkte für Reaktionen
5
Punkte
44
Zurück im Terminal, editieren wir anschließend die Datei /etc/passwd mit einem beliebigen Editor (ich benutze gern den im Midnight Commander integrierten) und ändern die UID von 101 nach 1051.

Wie genau mache ich das im Terminal?

Wenn Du diese grundlegenden Funktionen nicht beherrschst, solltest Du lieber die Finger davon lassen. Man kann nämlich auch einiges damit kaputt machen.

Willst Du es trotzdem unbedingt probieren, kannst Du wie folgt vorgehen:

Du musst Dich natürlich per SSH auf der DS einloggen:
Am Mac öffnest Du das Terminal und gibst SSH 192.168.1.5 -l root ein (einfach die IP Deiner DS einsetzen). Dann gibst Du Dein Admin-Passwort ein.
Aber soweit war Dir das sicher auch klar.

Jetzt bist Du auf Deiner DS eingeloggt. Ab hier kommt es darauf an, was Du auf Deiner DS installiert hast.
Der Standard-Editor heißt "vi". Der ist immer dabei.

Um mit "vi" zu arbeiten, musst Du folgendes eingeben:

Rich (BBCode):
DS> vi /etc/passwd

Jetzt bewegst Du den Cursor an die stelle, wo Du die Zahlen verändern willst.
Anschließend drückst Du i, um neue Zeichen einfügen zu können.
Änderungen entsprechend durchführen.
Wenn fertig, dann die ESC-Taste drücken.

Um zu beenden und die Änderungen zu übernehmen, gibst Du nun folgendes ein:
Rich (BBCode):
:wq

Für weiterführende Informationen kann ich Dir die von laserdesign eingefügten Links sehr empfehlen.
 

cupitronic

Benutzer
Mitglied seit
12. Sep 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Habe es endlich geschafft die uid unter /etc/passwd zu ändern in meinem Fall von user btsync.
Bittorrent Sync angehalten.
find / -user 100 -print
find /volume1/ -user 100 -print -exec chown btsync {} \;
reboot
Der Nutzer ist trotzdem nicht sichtbar
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.709
Punkte für Reaktionen
1.017
Punkte
754
Weil Du nicht die UID geändert hast, sondern den User.
 

cupitronic

Benutzer
Mitglied seit
12. Sep 2014
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Weil Du nicht die UID geändert hast, sondern den User.
Hab zuvor in der etc/passwd btsync:x:100:100:NZBGet User:/usr/local/btsync/var:/bin/sh
in btsync:x:1005:100:NZBGet User:/usr/local/btsync/var:/bin/sh
geändert, also die UID.

dann find /volume1/ -user 100 -print -exec chown btsync {} \; wie beschrieben;
 

cp389

Benutzer
Mitglied seit
07. Jan 2014
Beiträge
532
Punkte für Reaktionen
5
Punkte
44
Weil Du nicht die UID geändert hast, sondern den User.
Hab zuvor in der etc/passwd btsync:x:100:100:NZBGet User:/usr/local/btsync/var:/bin/sh
in btsync:x:1005:100:NZBGet User:/usr/local/btsync/var:/bin/sh
geändert, also die UID.

dann find /volume1/ -user 100 -print -exec chown btsync {} \; wie beschrieben;

Die UID muss größer 1024 sein.
 

cybertron

Benutzer
Mitglied seit
08. Okt 2014
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
hi all

die anleitung ist soweit klar für mich,bin mit ssh drauf,mit mac und terminal,allerdings raff ich nicht wie ich mein sabnzbd editieren kann im terminal.habe mir auch nen texteditor installiert,nur arbeitet der ja nicht im terminal ,oder denk ich einfach nur falsch,könnt ihr mir bitte helfen danke lg tom
 

cp389

Benutzer
Mitglied seit
07. Jan 2014
Beiträge
532
Punkte für Reaktionen
5
Punkte
44
Du musst den auf der DS eingebauten Editor verwenden. Im Standard ist vi enthalten. Der ist allerdings nicht ganz leicht zu bedienen.
Aber im Wiki gibt es eine gute Anleitung dafür.
http://www.synology-wiki.de/index.php/Vi

Der Befehl über SSH wäre dann
Rich (BBCode):
vi /etc/passwd
 

cybertron

Benutzer
Mitglied seit
08. Okt 2014
Beiträge
19
Punkte für Reaktionen
0
Punkte
1
edit sagt :

läuft jetzt perfekt.hatte meine uid nicht ersetzt sondern die von der Beschreibung genommen,DANKE ! an alle
LG TOM
 
Zuletzt bearbeitet:

tomtom00

Benutzer
Mitglied seit
23. Sep 2011
Beiträge
430
Punkte für Reaktionen
0
Punkte
0
Ich habe das ganze gerade als User 'admin' mit dem Config File Editor ausprobiert. Hat ohne Probleme geklappt! Für diejenigen die es nicht via SSH machen möchten :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat