Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
wecki
Posts: 101
Joined: 2005-01-27 08:55

Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

Post by wecki » 2006-08-07 13:29

Hallo,

ich möchte folgendes, finde aber den Befehl nicht :-(

Ich möchte alle Dateien und Ordner eines Verzeichnisses inkl. Unterverzeichnissen mittels chown einem neuen Besitzer und einer neuen Gruppe zuordnen.
Soweit so gut... Ist ja noch nix dramatisches.

Aber ich möchte, dass dies nur bei den Dateien und Verzeichnissen geschieht, die z.B. dem Benutzer a Gehören.

Also quasi: chown -R b:b wenn group=a und owner=a

Geht dass?

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

Re: Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

Post by daemotron » 2006-08-07 13:53

ungetestet:

Code: Select all

ls -lha | grep <alter_user> | chown <neuer_user>:<neue_gruppe>
Statt <alter_user> sonst einen regulären Ausdruck, der sowohl user als auch group umfasst.

lordy
Posts: 83
Joined: 2006-06-22 12:45

Re: Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

Post by lordy » 2006-08-07 14:06

Boah, was ein Hack 8O

Code: Select all

find . -user a -exec chown -R anderer_user '{}' ;
Ebenfalls ungetestet :-D

lord_pinhead
RSAC
Posts: 830
Joined: 2004-04-26 15:57

Re: Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

Post by lord_pinhead » 2006-08-07 14:25

Wenn da mit xargs ;)

Code: Select all

find . -user a | xargs sudo chown -R b
sudo nur wenn man wie ich nicht als root arbeitet, ansonsten weglassen.

wecki
Posts: 101
Joined: 2005-01-27 08:55

Re: Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

Post by wecki » 2006-08-07 15:26

jfreund wrote:ungetestet:

Code: Select all

ls -lha | grep <alter_user> | chown <neuer_user>:<neue_gruppe>
Statt <alter_user> sonst einen regulären Ausdruck, der sowohl user als auch group umfasst.
Danke, ich nehm dann wohl das hier, des verstehe ich wehnigstens :-)

Trotzdem auch danke an die Anderen!

elch_mg
Posts: 302
Joined: 2006-01-23 19:14
Location: 41063

Re: Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

Post by elch_mg » 2006-08-07 15:53

man find, man xargs, dann verstehst du auch den Rest. (:

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

Re: Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

Post by daemotron » 2006-08-07 17:16

wecki wrote:Ich möchte alle Dateien und Ordner eines Verzeichnisses inkl. Unterverzeichnissen (...)
Das tut meine Lösung allerdings nicht - sie piped nur die Dateien und Verzeichnisse an chown, die von ls ausgegeben werden. Also müssten die Parameterliste von ls noch erweitert werden:

Code: Select all

ls -lhaAR
Somit werden auch rekursiv alle Unterverzeichnisse mit aufgelistet. Was meine Variante auch noch nicht berücksichtigt, ist der Umstand, dass das long-Format neben dem Verzeichnisnamen auch noch andere Informationen enthält, die ebenfalls an chown gepiped werden. Hier ev. noch mal einen regulären Ausdruck drauf loslassen, um den Mist loszuwerden:

Code: Select all

ls -lhaAR | grep <user_group_regex> | sed 's/regex_pfad//g' | chown user:group
Damit wird das ganze deutlich komplizierter als die Methoden, die ansonsten genannt wurden => besser nicht machen, zumal ich grade auch keinen regulären Ausdruck aus dem Ärmel schütteln kann, der den Verzeichnisnamen aus einer ls -l Zeile herauslöst :oops:

lordy
Posts: 83
Joined: 2006-06-22 12:45

Re: Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

Post by lordy » 2006-08-07 17:30

Deshalb bezeichnete ich es ja auch als üblen Hack :wink:

Also "man find" ist auf jeden Fall gut investierte Zeit, denn find kann man oft und vielseitig einsetzen.
Ob man die eigentliche Aktion dann über -exec oder xargs anstößt sei natürlich jedem selbst überlassen.

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

Re: Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

Post by daemotron » 2006-08-08 09:05

lordy wrote:Deshalb bezeichnete ich es ja auch als üblen Hack :wink:
Mich wundert's nur, dass es dem OP offenbar nicht um die Ohren geflogen ist :D

juergen
Posts: 133
Joined: 2004-03-30 14:44

Re: Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

Post by juergen » 2006-08-08 21:17

Lord_Pinhead wrote:Wenn da mit xargs ;)

Code: Select all

find . -user a | xargs sudo chown -R b
sudo nur wenn man wie ich nicht als root arbeitet, ansonsten weglassen.
Um es zu perfektionieren. Manche User mögen Blanks in Dateinamen:

Code: Select all

find . -user a -print0 | xargs -0 sudo chown -R b 

thorsten
RSAC
Posts: 732
Joined: 2003-02-01 13:14
Location: Fuldatal

Re: Alle Dateien eines Ordners mittels chown einem anderen benutzer zuordnen wenn...

Post by thorsten » 2006-08-09 01:31

Ich warte ja noch auf den Power zsh User, der sich kringelig lacht und eine buildin-machanismus hier rausschüttelt ;)

Ich nutze auch immer xargs, weil ich immer wenns schnell gehen muss die ; vergesse :lol:

Leerzeichen gehören aber auch nicht auf einen Webserver - wenn ich es genau nehme bei mir nichmal auf den Fileserver.
Es gibt allerdings auch Leute die benutzen $blafasel als Dateinamen, weil das Dollarzeichen vor alphanumerischen Dateinamen steht und sie so schneller ihre Berichtshefte finden. :roll:
(Solche Leute müßten allesamt nochmal mit DOS und Windows 3.1 anfangen - mit den 8+3 Zeichen mußte man noch kreativ sein :lol: )

EDIT: Ups, sry ich nahm an wir sind im smalltalk. Bei Bedarf einfach löschen.