Maprechten aanpassen
Johan van Dijk
johanvandijk op gmail.com
Do mei 8 10:37:36 UTC 2008
Maxim Heijndijk wrote:
> Amedee Van Gasse schreef:
>> On Wed, May 7, 2008 14:21, Martijn van de Streek wrote:
>>> On Wed, 07 May 2008, flaman op aol.nl wrote:
>>>
>>>> Maar ik heb nog een vraag. Vanmorgen heb ik Ubuntu 8.04 geïnstalleerd.
>>>> Vervolgens heb ik mijn data-bestanden gekopieerd van een DVD naar het
>>>> systeem. Nu blijkt dat al de gekopieerde bestanden zijn beveiligd. Hoe
>>>> die rechten te wijzigen weet ik. Maar omdat ik een groot aantal
>>>> sub-mappen heb is het een hels karwei omdat stuk voor stuk te doen.
>>>>
>>>> Is er een mogelijkheid om de rechten van ALLE bestanden in een keer aan
>>>> te passen.
>>> Rechtsklik op de map waar alles in staat, pas de rechten aan, maar doe
>>> het venster nog niet dicht, en klik "Rechten op bestanden in de map
>>> toepassen".
>> of via de console:
>>
>> sudo chown -R user:group /de/directory/waarvan/je/de/rechten/wil/aanpassen
>>
>> chown betekent CHange OWNer
>> -R betekent recursief voor alle onderliggende bestanden en directories
>> user:group vervang je door de gewenste user/group. Bijvoorbeeld flaman:users.
>>
>> Daarna doe je eventueel:
>>
>> sudo chmod -R u+rw,g+r,o-wx /de/directory/waarvan/je/de/rechten/wil/aanpassen
>>
>> chmod past niet de eigenaar aan, maar de lees/schrijf/uitvoer rechten
>> -R is opnieuw recursief naar beneden
>> u is de user
>> g is de groep waar de user in zit
>> o is other, alle anderen
>> +rw wil zeggen: read en write rechten toevoegen
>> +r wil zeggen: read rechten toevoegen
>> -wx wil zeggen: write en execute rechten afpakken
>>
>> Dus in mijn voorbeeld:
>> * de user krijgt lees- en schrijfrechten toegevoegd
>> * de groep krijgt leesrechten toegevoegd (als er al schrijfrechten waren,
>> blijven die behouden)
>> * alle anderen wordt schrijf- en uitvoerrechten afgepakt. Als ze
>> leesrechten hadden, blijven die behouden.
>>
>> Dit is maar één voorbeeld, je kan daarmee zoveel spelen als je wil.
>> Er zijn nog andere (kortere) notaties mogelijk voor chmod, maar ik denk
>> dat deze langere notatie nog het best te verstaan is voor wie er net mee
>> begint. Het is nog "leesbaar".
>>
>> Groetjes en veel plezier ermee!
>>
>
> Hier moet je mee oppassen. chown -R volgt ook symlinks. Dus als iemand
> een symlink naar de root heeft aangemmaakt in /home/pipo, en hij geeft
> het commando 'chown -R pipo:clowns /home/pipo' , zeg dan maar dag tegen
> de permissies op je systeem.
>
> Een andere oplossing is om het volgende in een tekstbestandje genaamd
> 'chperms' te zetten en dat tekstbestandje uitvoerbaar te maken met chmod
> +x chperms.
>
> #!/bin/bash
>
> find /home/pipo -name '*' | while read FILE ; do
>
> if [ ! -L ${FILE} ]; then
>
> chown pipo:clowns ${FILE}
>
> chmod u=rwX ${FILE}
> chmod g=rX ${FILE}
> chmod o-rwx" ${FILE}
>
> done
>
> echo "Done chmodding pipo's caravan !"
>
> read
>
> exit 0
>
>
> Daarna kun je chperms naar /usr/local/bin kopieren en ten allen tijde de
> permissies van alle bestanden in je thuismap instellen door het commando
> 'sudo chperms' te geven.
>
> Of je doet dat met cron door de volgende regel in /etc/crontab te zetten:
>
> * * * * 1 root nice -n 19 /usr/local/bin/chperms
>
> Op die manier worden iedere week de permissies opnieuw ingesteld. Dan
> hoef je er nooit meer naar om te kijken.
>
> Let even op dat in het bovenstaande voorbeeld de hoofdletter X gebruikt
> wordt om de execute permissie in te stellen. Zo zorg je ervoor dat
> alleen bestanden die deze permissie reeds hebben, ingesteld worden als
> uitvoerbaar, in plaats van alle bestanden in de thuismap. Niet
> uitvoerbare bestanden zoals config files worden dus met rust gelaten.
>
Is het niet makkelijker om met find te werken?
find /begin/map/ -type f -exec chmod XYZ {} \;
Of om alleen mappen aan te passen:
find /begin/map/ -type d -exec chmod XYZ {} \;
Groeten,
Johan
Meer informatie over de Ubuntu-NL
maillijst