UID GID Änderungen auf Filesystem übernehmen

Bash, Shell, PHP, Python, Perl, CGI
ddm3ve
Moderator
Moderator
Posts: 1125
Joined: 2011-07-04 10:56

UID GID Änderungen auf Filesystem übernehmen

Post by ddm3ve » 2014-07-03 13:01

Hallo, folgender konkreter Fall:

Für mehrere Server die auf einen dedizierten Storage zu greifen, müssen UID und GID angepasst / geändert werden.
Auf dem Storage befinden sich zig Verzeichnisse und Dateien mit unterschiedlichen Benutzerberechtigungen.
Ich suche gerade nach einer einfachen schnellen und simplen Möglichkeit, die UID und GID, welche geändert werden folgerichtig auf dem Storage nach Änderung der UID / GID zu berichtigen.

Vielleicht hat ja jemand eine Idee oder konkrete Befehl auf Lager womit man das realisieren kann.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: UID GID Änderungen auf Filesystem übernehmen

Post by daemotron » 2014-07-03 15:45

Lege Dir (in einer Datei) eine Liste der Änderungen in folgendem Format an:

Code: Select all

uid:username
Dann mache folgendes:

Code: Select all

for data in $(cat /pfad/zu/liste); do
    uid=$(echo $data | awk -F ":" '{print $1}')
    user=$(echo $data | awk -F ":" '{print $2}')
    find . -uid ${uid} -exec chown ${user} {} \;
done
Mit den Gruppen geht es analog, nur dass das find-Kriterium dann gid wäre. Nicht sehr schön, sollte aber funktionieren.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

ddm3ve
Moderator
Moderator
Posts: 1125
Joined: 2011-07-04 10:56

Re: UID GID Änderungen auf Filesystem übernehmen

Post by ddm3ve » 2014-07-03 15:59

Hi, ja so läuft es nun so ab.
Hatte gehofft es gibt eine etwas "effektivere" und weniger Storage quälende Methode.
Schade.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: UID GID Änderungen auf Filesystem übernehmen

Post by daemotron » 2014-07-04 14:36

ddm3ve wrote:Hatte gehofft es gibt eine etwas "effektivere" und weniger Storage quälende Methode.
Schade.

Na ja, für jede Datei wird in der fnode-Tabelle des Dateisystems die numerische UID und GID hinterlegt. Solange es nur um die angezeigten Usernamen geht, reicht es, die Referenzdaten (normalerweise /etc/passwd und /etc/group) entsprechend zu bearbeiten bzw. einen zweiten User mit derselben UID anzulegen (wenn auch das wenig ratsam ist).

Wenn aber - wie in Deinem Fall - tatsächlich die numerische UID bzw. GID geändert werden soll, hilft alles nichts - das muss dann für jede einzelne Datei in der fnode-Tabelle des Dateisystems erfolgen, wo diese eben hart codiert sind.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

ddm3ve
Moderator
Moderator
Posts: 1125
Joined: 2011-07-04 10:56

Re: UID GID Änderungen auf Filesystem übernehmen

Post by ddm3ve » 2014-07-08 21:39

Erstmal danke für Deine Unterstützung. Mein Gedanke, mein Fehler war die Steuerung über ACLs. Allerdings ist das auf dem Storage kein erweiterte ACL aktiviert.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.