WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 13.09.2008, 08:15   #1
keksi77
Veteran
 
Registriert seit: 20.05.2003
Beiträge: 282


Standard wieder eine bash Script Frage

Hallo,

im Home Verzeichnis hat jeder Benutzer ein eigenes Verzeichnis bei uns, leider sind in den Benutzerverzeichnissen, die Rechte und der Owner etwas durch einander gekommen.

wie kann ein script aussehen, das mir von jedem benutzerverzeichnis im home, den owner nimmt und dann rekursiv alle dateien in benutzerverzeichnis den owner neu setzt?

Danke Horst
keksi77 ist offline   Mit Zitat antworten
Alt 15.09.2008, 13:07   #2
buntstift
Veteran
 
Registriert seit: 10.06.2008
Ort: Niederösterreich
Alter: 38
Beiträge: 257

Mein Computer

Standard

hm ... ich weiß nicht so schwer ist das ja nicht ...

gut wär mal ein listing des /home verzeichnisses

machst du ls -l /home

Code:
drwxr-xr-x  2 ftp      nogroup   4096 2008-08-14 10:32 ftp
sollten dann ein paar solche einträge kommen. du weißt ja, die spalten 3 und 4 (hier ftp und nogroup) sind user und gruppe, denen das verzeichnis gehört.

diese spalten kannst mit dem befehl awk extrahieren (die syntax is a bissl schwer, schau dir mal die manpage an und wennst net weiter weißt dann gerne )

brauchen wirst auch noch eine foreach schleife drumherum, weil du den befehl ja für jedes homeverzeichnis den user extrahieren willst.

und in der foreach machst dann das oben erwähne awk um aus der 3. spalte den usernamen zu extrahieren (gruppe nehm ich mal an wird gleich dem usernamen sein?).

dann setzt noch die zugriffsrechte mit chmod -R wie du sie haben willst. das -R steht natürlich für rekursiv, also alle unterverzeichnisse und -dateien. das gleiche gibts auch für chown.

hoff ich hab dir geholfen.
ein fertiges skript ... naja da müsst ich jetzt auch ein bissl arbeiten. aber man merkt sichs ja besser wenn mans selbst erarbeitet
buntstift ist offline   Mit Zitat antworten
Alt 12.10.2008, 23:01   #3
CM²S
Elite
 
Benutzerbild von CM²S
 
Registriert seit: 27.03.2000
Ort: Wien
Alter: 55
Beiträge: 1.168


CM²S eine Nachricht über Skype™ schicken
Standard

hello,

die Verzeichisse gehören normalerweise entweder

username username oder username , usergroup

sudo bash oder su -
cd /home

for username in `ls -1` ; do chown -R $username $username/; done

oder wenn die Gruppe auch falsch is

for username in `ls -1` ; do chown -R $username.$username $username/; done



das wars ...


ciao
CM²S
____________________________________
\"wann amoi de blaun denen grean an rodn dewich ausroin, daunn siach i schwoaz\"
Gedicht aus \"Eigfleischte Wegetaria und aundare meakwürdikeiten, Andreas Nastl
http://lichtschwarz.tv
CM²S ist offline   Mit Zitat antworten
Alt 13.10.2008, 21:30   #4
colossus
Master
 
Registriert seit: 24.02.2002
Ort: Wien
Alter: 40
Beiträge: 611


Standard

Zitat:
Zitat von CM²S Beitrag anzeigen
for username in `ls -1` ; do chown -R $username.$username $username/; done
STOP! You are doing it wrong!
____________________________________
Free Software. Free Society. Better Lives.
colossus ist offline   Mit Zitat antworten
Alt 13.10.2008, 22:12   #5
CM²S
Elite
 
Benutzerbild von CM²S
 
Registriert seit: 27.03.2000
Ort: Wien
Alter: 55
Beiträge: 1.168


CM²S eine Nachricht über Skype™ schicken
Standard wenn...

ok wiki gelesen

Bitte welcher trottel macht spaces im Usernamen , das können eigentlich nur Windowsuser sein !??!!??!

aber du hast recht .... a bisserl aufpassen muss ma schon....

# test
cd /home
for i in "`ls -1`"; do echo "$i"; done
# echt
for i in "`ls -1`"; do chown -R "$i.$i" "$i/"; done

und das mit dem "" funkt und das is das Ziel, schönen code schreib ich wenn ich mehr Zeit habe

aber du kannst ja den richtigen code posten !?!?

ciao
CM²S
____________________________________
\"wann amoi de blaun denen grean an rodn dewich ausroin, daunn siach i schwoaz\"
Gedicht aus \"Eigfleischte Wegetaria und aundare meakwürdikeiten, Andreas Nastl
http://lichtschwarz.tv

Geändert von CM²S (13.10.2008 um 22:37 Uhr).
CM²S ist offline   Mit Zitat antworten
Alt 14.10.2008, 09:00   #6
colossus
Master
 
Registriert seit: 24.02.2002
Ort: Wien
Alter: 40
Beiträge: 611


Standard

Username und Name des Homedirectories eines Users muessen nicht koinzidieren; das ist eine optionale Konvention. Natuerlich sind Leerzeichen in GNU und UNIX ueberall dort, wo es geht, tunlichst zu vermeiden - aber better safe than sorry, oder? Nennt sich auch defensive programming - es ist generell besser, vom worst case auszugehen, und auch den zu ueberwinden, als vielleicht 98% aller Anwendungsfaelle abzudecken, aber dann etwas Wichtiges phaenomenal zu verhauen.

Ad Topic: `ls -1` sollte durch * ersetzt werden. Spart Tipparbeit, und ist zudem noch richtig.
____________________________________
Free Software. Free Society. Better Lives.
colossus ist offline   Mit Zitat antworten
Alt 14.10.2008, 09:31   #7
Don Manuel
Inventar
 
Benutzerbild von Don Manuel
 
Registriert seit: 08.02.2001
Beiträge: 9.977


Standard

Werter Colossus, Du erfreust Dich ja am aufwändigeren Formulieren und dürftest @topic hier bisher der Kundigste sein. Warum befleissigst Du Dich dann nicht des geringen Zeilenumfanges des Miniscripts und beschränkst Dich lediglich auf Korrekturen anderer, die sich offensichtlich ungleich mehr Mühe geben müssen, um zum gewünschten Resultat zu kommen? Hat man es Dir auch so beigebracht?
Don Manuel ist offline   Mit Zitat antworten
Alt 14.10.2008, 09:39   #8
colossus
Master
 
Registriert seit: 24.02.2002
Ort: Wien
Alter: 40
Beiträge: 611


Standard

Ich bin hier niemandem Rechenschaft schuldig; was ich will und was ich tue ist allein meine Sache. Mein Wissen ist selbst angeeignet; ich habe mir den Luxus, in gut besuchten Foren nach Loesungen fuer die Mikrowelle zu fragen nicht gegoennt.

Nichtsdestrotrotz, mein Vorschlag waere:
Code:
for i in /home/*;
do chown --no-dereference -c -R "$(stat --format=%U:%G "${i}")" "${i}";
done
Edith schreit noch rueber: das kleine Script setzt Owner _und_ Group-owner. Wenn man wirklich nur Owner moechte, muss man den formatstring fuer `stat` entsprechend aendern, und schreibt statt %U:%G nur %U.
____________________________________
Free Software. Free Society. Better Lives.

Geändert von colossus (14.10.2008 um 09:48 Uhr).
colossus ist offline   Mit Zitat antworten
Alt 14.10.2008, 09:50   #9
Don Manuel
Inventar
 
Benutzerbild von Don Manuel
 
Registriert seit: 08.02.2001
Beiträge: 9.977


Standard

Na siehst Du, ist doch viel hilfreicher so. Ich bin mit der Syntax auch nicht so sattelfest, sonst hätte ich's natürlich auch gepostet.
Natürlich bist Du niemandem Rechenschaft schuldig, meine Kritik zielt auf den höheren Informationsgehalt des Forums sowie auch auf Dein Verhalten ab, allerdings kannst dadurch nur Du Dank und Anerkennung gewinnen, das wäre neben höherem Informationsgehalt auch noch ein freundlicheres Umfeld genau für Dich
Don Manuel ist offline   Mit Zitat antworten
Alt 14.10.2008, 16:56   #10
CM²S
Elite
 
Benutzerbild von CM²S
 
Registriert seit: 27.03.2000
Ort: Wien
Alter: 55
Beiträge: 1.168


CM²S eine Nachricht über Skype™ schicken
Standard

helo,

ich sehe , ich kann noch viel lernen !!

danke für die Aufklärung, aber moderne Linux Distributionen lassen keine Blanks in Usernames zu .... ;-)

aber es ist gut alternativen zu sehen...

und....

es funkt, und gibt sogar feedback um Änderungen wieder zürück nehmen zu können...

Danke

ciao
CM²S
____________________________________
\"wann amoi de blaun denen grean an rodn dewich ausroin, daunn siach i schwoaz\"
Gedicht aus \"Eigfleischte Wegetaria und aundare meakwürdikeiten, Andreas Nastl
http://lichtschwarz.tv

Geändert von CM²S (14.10.2008 um 17:06 Uhr).
CM²S ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:52 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag