Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: chmod -Rf maar enkel voor bepaalde extenties?  (gelezen 1843 keer)

wr19026

  • Gast
chmod -Rf maar enkel voor bepaalde extenties?
« Gepost op: 2007/03/06, 23:30:22 »
Ik heb me suf gezocht maar niks kunnen vinden.

Wat ik wil is de permissies van alle files met een bepaalde extensie (in dit geval *.php) aanpassen maar dan door de hele directory structuur aanpassen.

Dus in /dir /dir/dir1 /dir/dir2 /dir/dir3 /dir/dir1/dir1 etc.

En het moet wel via commandline :)

Offline Pjotr

  • Lid
    • Makkelijke Linuxtips
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #1 Gepost op: 2007/03/06, 23:39:01 »
Pleur de betreffende bestanden op een FAT32 partitie? Dan kan iedereen eraan komen.

Offline Johan van Dijk

  • Administrator
    • johanvandijk
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #2 Gepost op: 2007/03/07, 02:48:37 »
Ik denk dat je dan een combinatie zal moeten bouwen tussen find en chmod.
Met find zoek je alle bestanden met een bepaalde extensie, en die stuur je door naar chmod om te veranderen.
Dit kan gewoon op 1 regel.

Offline wutnubu

  • Lid
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #3 Gepost op: 2007/03/07, 06:28:15 »
Dat kan toch zo:

chmod -R a+rw *.php
Uitvoeren in terminal venster in de hoogste map waar ze staan.
Eventueel met sudo, maar dat beter niet als het niet nodig is.


Succes

wr19026

  • Gast
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #4 Gepost op: 2007/03/07, 14:43:19 »
Citaat van: w.hellinga
Dat kan toch zo:

chmod -R a+rw *.php
Uitvoeren in terminal venster in de hoogste map waar ze staan.
Eventueel met sudo, maar dat beter niet als het niet nodig is.


Succes
Nee want hij gaat niet een directory dieper dan waar ik in sta....

wr19026

  • Gast
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #5 Gepost op: 2007/03/07, 14:52:24 »
Citaat van: pjotr123
Pleur de betreffende bestanden op een FAT32 partitie? Dan kan iedereen eraan komen.
Niet helemaal de bedoeling als het om je webserver gaat ;)

Offline siegi

  • Lid
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #6 Gepost op: 2007/03/07, 15:05:53 »
Euhm ik heb een voorstel maar je zal nog wel zelf moeten uitzoekn hoe het allemaal werkt maar volgens mij moet het er zeker mee gaan.
find -name "*.php" > bestandje
en dan met awk voor elke gevonden file chmod -options zetten.
Hier is een handleiding hoe awk werkt.
http://www.oracle.com/technology/pub/articles/dulaney_awk.html

Heb zelf al iets gevonden was eigenlijk ook benieuwd hoe het werkte :)
find -name "*.php" > lijstje
awk '{print "chmod +options " $1}' < lijstje > lijst
sh lijst
options moet je maar vervangje door wat je zelf nodig hebt

Offline wutnubu

  • Lid
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #7 Gepost op: 2007/03/07, 17:12:57 »
Citaat van: wr19026
Citaat van: w.hellinga
Dat kan toch zo:

chmod -R a+rw *.php
Uitvoeren in terminal venster in de hoogste map waar ze staan.
Eventueel met sudo, maar dat beter niet als het niet nodig is.


Succes
Nee want hij gaat niet een directory dieper dan waar ik in sta....
Wat bedoel je daarmee? Die -R staat voor recursive.

http://en.wikipedia.org/wiki/Chmod#Options
http://en.wikipedia.org/wiki/Recursion

Groet

Offline Tukcedo

  • Lid
    • http://www.tukcedo.nl
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #8 Gepost op: 2007/03/07, 17:15:47 »
Het find commando werkt zo:

find / -name "*php" -exec chmod a+r {} \;

Waarbij de {} de waarde aanneemt van een bestand dat aan de find criteria voldoet. Vergeet niet de \; achteraan vanwege de shell expansion (interpretatie van variabelen).
Tukcedo Services - Unix en Linux Consultants
http://www.tukcedo.nl

wr19026

  • Gast
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #9 Gepost op: 2007/03/08, 01:01:12 »
Citaat van: w.hellinga
Citaat van: wr19026
Citaat van: w.hellinga
Dat kan toch zo:

chmod -R a+rw *.php
Uitvoeren in terminal venster in de hoogste map waar ze staan.
Eventueel met sudo, maar dat beter niet als het niet nodig is.


Succes
Nee want hij gaat niet een directory dieper dan waar ik in sta....
Wat bedoel je daarmee? Die -R staat voor recursive.

http://en.wikipedia.org/wiki/Chmod#Options
http://en.wikipedia.org/wiki/Recursion

Groet
'k Heb het (als root) geprobeerd zoals je voorstelde en het werkte niet....

wr19026

  • Gast
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #10 Gepost op: 2007/03/08, 01:02:33 »
Citaat van: tukcedo
Het find commando werkt zo:

find / -name "*php" -exec chmod a+r {} \;

Waarbij de {} de waarde aanneemt van een bestand dat aan de find criteria voldoet. Vergeet niet de \; achteraan vanwege de shell expansion (interpretatie van variabelen).
Hmmm..Heel interessant, straks maar eens proberen :) Ik neem aan dat als ik de / verander in /var/www er alleen in die (en onderliggende) directories gekeken wordt?

Offline Johan van Dijk

  • Administrator
    • johanvandijk
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #11 Gepost op: 2007/03/08, 02:53:44 »
Citaat van: tukcedo
Het find commando werkt zo:

find / -name "*php" -exec chmod a+r {} \;

Waarbij de {} de waarde aanneemt van een bestand dat aan de find criteria voldoet. Vergeet niet de \; achteraan vanwege de shell expansion (interpretatie van variabelen).
2 opmerkingen:
1: "find /": je zoekt vanaf de root directory neem ik aan? Dus ook bestanden in /home, /var en /etc enz. worden veranderd. Dat lijkt me niet de bedoeling

2: name "*php" zou dat niet "*.php" moeten zijn? Je wil immers de bestanden die eindigen op ".php" veranderen, niet de bestanden zonder extensie die toevallig op php eindigen (bijv. een help document of iets dergelijks)

Het kan zijn dat ik het verkeerd heb, want zo'n terminal-held ben ik nou ook weer niet :)

Offline Tukcedo

  • Lid
    • http://www.tukcedo.nl
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #12 Gepost op: 2007/03/09, 04:20:19 »
wr19026 heeft gelijk, de "/" is het start-punt van het commando. /var/www werkt dus zoals je verwacht: alles eronder zal worden bekeken, zowel files als directories. Maar ook dat is aan te passen want je kunt doen "-type f" voor bestanden en "-type d" voor directories e.d.

En over *.php of *php, tja ach, ik heb zelf deze exacte opdracht nog nooit hoeven geven maar ik gebruik de . in bestands-extensies eigenlijk bijna nooit. Maar hoe dan ook, het is goed om in geval van twijfel het find commando even ZONDER de -exec te draaien dan weet je precies wat er gaat gebeuren!
Tukcedo Services - Unix en Linux Consultants
http://www.tukcedo.nl

Offline wutnubu

  • Lid
chmod -Rf maar enkel voor bepaalde extenties?
« Reactie #13 Gepost op: 2007/03/09, 06:32:10 »
Citaat van: wr19026
Citaat van: w.hellinga
Citaat van: wr19026
Nee want hij gaat niet een directory dieper dan waar ik in sta....
Wat bedoel je daarmee? Die -R staat voor recursive.

http://en.wikipedia.org/wiki/Chmod#Options
http://en.wikipedia.org/wiki/Recursion

Groet
'k Heb het (als root) geprobeerd zoals je voorstelde en het werkte niet....
Wel lastig twee onderwerpen in 1 draadje, maar vooruit..

Wat geeft ie terug als je dat (sudo chmod -R .... *.php ofzo) intypt.?

Groet