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