Besitzer eines Ordners festlegen

Status
Für weitere Antworten geschlossen.

BenAhrdt

Benutzer
Mitglied seit
11. Sep 2022
Beiträge
110
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?
 
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?
 
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.
 
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.
 
Hi. 1000.
Ich weiß allerdings, dass ich sie selbst angelegt habe.
 
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.
 
Ich hatte die mal ganz normal in der Filestation angelegt. 100%
 
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?
 
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?
 
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?
 
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.
 
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?
 
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.
 
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).
 
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?
 
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:
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.
 
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.
 
Mit ssh kommt man über die Windows eingabeaufforderubg drauf?
 
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.
 
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