Besitzer eines Ordners festlegen

BenAhrdt

Benutzer
Mitglied seit
11. Sep 2022
Beiträge
108
Punkte für Reaktionen
1
Punkte
18
Hallo, ich habe gewisse Docker Container, welchen ich Ordner mounte.

Gerade der ioBroker hat bei mir einen Ordner gemountet, welcher unter eigenschaften so ausschaut:
1686314511643.png
Darauf klappt der Zugriff einwandfrei.
Wenn ich nun neue Ordner anlege, wird bei Owner immer mein Benutzer mit dem Ich erstellt habe angelegt.
Wie bekommt man denn bei Besitzer dieses leere Feld hin?
Scheint eienr Berechtigung "everyone" gleich zu kommen oder so.

Weiß das jemand?
 

ottosykora

Benutzer
Mitglied seit
17. Apr 2013
Beiträge
8.880
Punkte für Reaktionen
1.154
Punkte
288
also wenn man einen Ordner anlegt dann wird er zuerst mal einen Owner haben, das ist halt unter Linux (und wohl anderen OS) so.

Dass dort nichts steht könnte damit zusammenhängen dass der User der es angelegt hat keinen Namen in Buchtaben hat sondern ur irgendwelche ID.

Sicher weiss ich es nicht, da müsste man via Kommandozeile nachschauen.


Aber wozu willst du einen Ordner mit einem Owner ohne lesbaren Namen erstellen? Nutzen davon?
 

BenAhrdt

Benutzer
Mitglied seit
11. Sep 2022
Beiträge
108
Punkte für Reaktionen
1
Punkte
18
Ich habe mehrere Docker Container, welchen ich Ordner gemountet habe.
ALLE Ordner wurden von mir erstellt.
Nun haben einige als Besitzer meinen Benutzernamen und andere keinen Eintrag bei Benutzer.
Ich wollte nun wissen warum und wie sich das mit den Rechten verhält.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
Jedes Objekt im Filesystem hat einen Owner. Schau mal über die Konsole
Code:
root@DS1522:~# ls -als /volume1/docker
total 0
0 drwxr-xr-x+ 1 root    root   80 Feb 23 11:06 .
0 drwxr-xr-x  1 root    root  868 Jun  8 09:56 ..
0 drwxr-xr-x+ 1 root    root  140 Mar  8 21:38 acme
0 drwxrwxrwx+ 1 root    root    8 Jun  8 09:57 @eaDir
0 drwxr-xr-x+ 1     999 users 250 May 27 18:04 mariadb
0 drwxr-xr-x+ 1      33 root  412 Nov 26  2022 nextcloud
0 drwxr-xr-x+ 1 gerhard users 138 Apr 27 13:36 portainer_data
Eigentlich ist dort die User-ID hinterlegt, die wird aber bei der Anzeige über die /etc/passwd in Klartext übersetzt. Wenn es den User nicht mehr gibt, erscheint halt die User-ID als Zahl (s. 999 und 33 in meinem Beispiel.

Schau mal über die Konsole, welchen Owner die Verzeichnisse haben, bei denen die Filestation keinen anzeigt.
 

BenAhrdt

Benutzer
Mitglied seit
11. Sep 2022
Beiträge
108
Punkte für Reaktionen
1
Punkte
18
Hi. 1000.
Ich weiß allerdings, dass ich sie selbst angelegt habe.
 

ottosykora

Benutzer
Mitglied seit
17. Apr 2013
Beiträge
8.880
Punkte für Reaktionen
1.154
Punkte
288
1000 ist der erste User der auf dem System entstanden ist nach root, das ist also kaum ein User den du selber angelegt hast
sicher war auch schon admin vorher angelegt worden zum Bsp

und die Ordner hast du denn wie angelegt wenn die einen owner 1000 haben? Mit deinem eigenen user kaum.
 

ottosykora

Benutzer
Mitglied seit
17. Apr 2013
Beiträge
8.880
Punkte für Reaktionen
1.154
Punkte
288
und wenn du den angelegt hast was stand dann als Owner drin?

Kannst du einen Beispiel eines Ordners geben welchen du angelegt hast und der von Anfang an den Owner 1000 hatte?
(also nicht schummeln und chown machen)

Owner 1000 ist der erste User nach dem root.
Alle anderen User haben höhere Nummen ID. Weche ID hast du denn?
 

BenAhrdt

Benutzer
Mitglied seit
11. Sep 2022
Beiträge
108
Punkte für Reaktionen
1
Punkte
18
Keine Ahnung
Der User mit dem ich den Ordner erstellt habe, hat die Id 1024.
Der Docker Ordner der drauf zugreift hat als eine environmentvariable die Id 1000.
Kann der den Ordner quasi „übernommen“ haben?
 

ottosykora

Benutzer
Mitglied seit
17. Apr 2013
Beiträge
8.880
Punkte für Reaktionen
1.154
Punkte
288
also wenn du einen Ordner mit dem User 1024 angelegt hast, dann ist der owner halt 1024 mit dem Namen den du ihm zugeteilt hast.

Owner lassen sich zuweisen

dazu gibt es chown

https://de.wikipedia.org/wiki/Chown_(Unix)


ich weiss nicht was alles unter Docker läuft, aber warum soll da nicht so was mal drin ablaufen?
 

BenAhrdt

Benutzer
Mitglied seit
11. Sep 2022
Beiträge
108
Punkte für Reaktionen
1
Punkte
18
Das war die Frage. Ob es eben geht, dass der Ordner von mir erzeugt wurde und dann der Docker Container mit chown die 1000 als owner zuweist.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
Der Docker Ordner der drauf zugreift hat als eine environmentvariable die Id 1000.
Ich denke, dass es schon möglich ist, dass der Docker-Container das chown durchgeführt hat. Meines Wissens ist aber die Zuweisung einer UID als Variable eines Containers eher dazu da, ihm die UID eines existierenden Benutzers mitzuteilen, anstatt einfach den Default (1000?) zu belassen. Wo hast die 1000 her?
 

BenAhrdt

Benutzer
Mitglied seit
11. Sep 2022
Beiträge
108
Punkte für Reaktionen
1
Punkte
18
Die steht in den default Variablen und der Liefert das auch mit
ls -lh zurück.
Im iobrokerforum sagte man mir ich solle die 1000 bestehen lassen.
Wahrscheinlich wird das beim ersten hochfahren einmal gemacht.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
Hier gab's auch mal so einen Fall. Der User hat wohl auch die UID-Variable 1000 gelassen und wie du siehst, gehört dort auch iobroker selbst (.) der 1000, einem Benutzer, den es auf der DS nicht gibt. Das ist aber nicht weiter schlimm, solange man nicht von Seite der DS darauf zugreifen möchte. Es wäre m.E. daher besser die UID eines existierenden (ggf. neuen Benutzers "iobroker") zu verwenden. Gleiches gilt wohl auch für die GID (Gruppe).
 

BenAhrdt

Benutzer
Mitglied seit
11. Sep 2022
Beiträge
108
Punkte für Reaktionen
1
Punkte
18
OK. laos aktuell funktioniert ja alles soweit.
In Zukunft könnte ich dann also so vorgehen, dass ich Ordner entsprechend mit dem User des geplanten Docker Containers anlege und deren uid dem container übergebe, oder?
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
Nein, ich denke, das beste Vorgehen wäre m.E.:
- Gruppe "iobrocker" anlegen, User "iobrocker" anlegen und der Gruppe "iobrocker" zuordnen.
- vergebene UID und GID aus der /etc/passwd bzw. /etc/group raussuchen und den Variablen des Containers zuordnen

Nachträglich anpassen lässt sich das z.B. mit "chown -R iobroker:iobrocker /volume1/docker/iobrocker" wenn der Zweig bereits existiert.

Edit: Lies mal hier.
  • SETGID (default: 1000) In some cases it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host
  • SETUID (default: 1000) In some cases it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host
 
Zuletzt bearbeitet:

BenAhrdt

Benutzer
Mitglied seit
11. Sep 2022
Beiträge
108
Punkte für Reaktionen
1
Punkte
18
Ok danke. Meinst du Gruppe Docker und User iobroker ?
Aus der etc raus suchen?
Finde ich da irgendwo ne Datei, oder wie?
Ich habe kein ssh an, kann also Befehle nur über die aufgabenplanung anstoßen.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
Kannst natürlich auch eine Gruppe "Docker" nehmen, wenn du schon eine hast.
SSH-Zugriff braucht man immer mal wieder, kannst aber auch über den Aufgabenplaner machen mit "cat /etc/passwd" bzw. "cat /etc/group". Der 3. Wert jeder Zeile ist die ID.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.761
Punkte
468
Ja, SSH-Server auf der DS einschalten, dann "ssh admin@<IPderDS>" am PC aufrufen, anmelden, und mit "sudo -i" auf root umschalten (Passwort nochmal eingeben). Mit "exit" (2x) kommst du wieder raus.
 


 

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