chmod 644 liste aus txt datei ausühren

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
fulltilt
Beiträge: 1157
Registriert: 03.12.2006 20:10:57

chmod 644 liste aus txt datei ausühren

Beitrag von fulltilt » 13.01.2017 13:59:14

habe vorhin mal einen file permission check ausgeführt und in eine datei ausgegeben ... alles was auf chmod 0777 ist

Code: Alles auswählen

/var/www/virtual/website.tld/example.jpg
/var/www/virtual/website.tld/example.php
...
ist es möglich die gefundenen Dateien aus dieser Liste auf einen Schlag auf 644 zu setzen?
Ich will nicht automatisch gleich alle Dateien ändern, sondern die Liste abarbeiten (wird vorher gecheckt) es gibt ein paar Ausnahmen ...
Debian: Testing
Desktop: KDE Plasma 5

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: chmod 644 liste aus txt datei ausühren

Beitrag von sbruder » 13.01.2017 14:18:05

find(1) und -exec?
man find hat geschrieben: -exec command ;
Execute command; true if 0 status is returned. All following arguments to find are taken to be arguments to the command until an argument consisting of `;' is encountered.
The string `{}' is replaced by the current file name being processed everywhere it occurs in the arguments to the command, not just in arguments where it is alone, as in
some versions of find. Both of these constructions might need to be escaped (with a `\') or quoted to protect them from expansion by the shell. See the EXAMPLES section
for examples of the use of the -exec option. The specified command is run once for each matched file. The command is executed in the starting directory. There are
unavoidable security problems surrounding use of the -exec action; you should use the -execdir option instead.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: chmod 644 liste aus txt datei ausühren

Beitrag von tobo » 13.01.2017 14:19:28

fulltilt hat geschrieben:ist es möglich die gefundenen Dateien aus dieser Liste auf einen Schlag auf 644 zu setzen?
Sowas?

Code: Alles auswählen

while read -r line;do chmod 0644 $line;done < datei.txt

Benutzeravatar
MSfree
Beiträge: 10774
Registriert: 25.09.2007 19:59:30

Re: chmod 644 liste aus txt datei ausühren

Beitrag von MSfree » 13.01.2017 14:23:30

fulltilt hat geschrieben:habe vorhin mal einen file permission check ausgeführt und in eine datei ausgegeben

Code: Alles auswählen

vi datei
Dann im vi folgendes eingeben:

Code: Alles auswählen

:%s/^/chmod 644 /g
:wq
Und dann die Datei mit sh datei abarbeiten lassen.
Zuletzt geändert von MSfree am 13.01.2017 14:25:40, insgesamt 1-mal geändert.

Benutzeravatar
fulltilt
Beiträge: 1157
Registriert: 03.12.2006 20:10:57

Re: chmod 644 liste aus txt datei ausühren

Beitrag von fulltilt » 13.01.2017 14:23:36

tobo hat geschrieben:
fulltilt hat geschrieben:ist es möglich die gefundenen Dateien aus dieser Liste auf einen Schlag auf 644 zu setzen?
Sowas?

Code: Alles auswählen

while read -r line;do chmod 0644 $line;done < datei.txt
Danke, ja das müsste klappen ... ich teste mal :THX:
Debian: Testing
Desktop: KDE Plasma 5

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: chmod 644 liste aus txt datei ausühren

Beitrag von sbruder » 13.01.2017 14:27:38

MSfree hat geschrieben:

Code: Alles auswählen

vi date

Code: Alles auswählen

:%s/^/chmod 644 /g
:wq
Brauch man garkeinen vi(m) dafür, geht mit sed auch:

Code: Alles auswählen

cat /path/to/file|sed -e 's/^/chmod 644 /'|sh -

Benutzeravatar
MSfree
Beiträge: 10774
Registriert: 25.09.2007 19:59:30

Re: chmod 644 liste aus txt datei ausühren

Beitrag von MSfree » 13.01.2017 14:36:25

sbruder hat geschrieben:Brauch man garkeinen vi(m) dafür, geht mit sed auch:

Code: Alles auswählen

cat /path/to/file|sed -e 's/^/chmod 644 /'|sh -
Stimmt, aber mit dem sed kannst du nicht die oben erwähnten Ausnahmen rauseditieren.

Benutzeravatar
Meillo
Moderator
Beiträge: 8817
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: chmod 644 liste aus txt datei ausühren

Beitrag von Meillo » 13.01.2017 18:37:03

Ich will gerne empfehlen, beim vi/sed-Vorschlag um die Dateinamen Quotes zu setzen, damit Whitespace in den Namen kein Problem ist. Man muss nur aufpassen, falls die Dateinamen selbst Quotes enthalten (es gibt ja allerhand ;-) ).

Hier mein Vorschlag, der in allen Faellen funktionieren sollte, ausser wenn Newlines im Dateinamen sind:

Code: Alles auswählen

<files.txt xargs -d \\n chmod 644
Beim while-read-Schleifen-Vorschlag sollte man die Variablenexpansion unbedingt Quoten (das funktioniert auch korrekt wenn im Namen selbst Quotes enthalten sind). Bei solchen Befehlen sollte man wirklich dran denken Variablenexpansionen in Double-Quotes zu setzen.
Use ed once in a while!

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: chmod 644 liste aus txt datei ausühren

Beitrag von tobo » 14.01.2017 09:25:43

Meillo hat geschrieben:Beim while-read-Schleifen-Vorschlag sollte man die Variablenexpansion unbedingt Quoten (das funktioniert auch korrekt wenn im Namen selbst Quotes enthalten sind). Bei solchen Befehlen sollte man wirklich dran denken Variablenexpansionen in Double-Quotes zu setzen.
Ups - ja, das ist natürlich richtig und auch wichtig!

Antworten