Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: clovenhoof в Jun 16, 2012, 07:48



Титла: Листване на файлове с определен собственик и група
Публикувано от: clovenhoof в Jun 16, 2012, 07:48
Имам една папка в която освен файлове с root:root собственост, има и файлове с http:http собственост.
Как да chown-на само файловете които са root:root на <my_user>:http, a тези с http:http да си останат?
Ако успея да ги листна вече ще ги пайпна към chown.

Става дума за едно web-app (за по-лесно - сайт) и идеята е да мога сваля правата на others. В момента се налага някои папки в структурата на приложението да са с права 777 за да може апача или php да пише в тях. След промяната ще мога да ги намаля на 775 или 770, защото юзера на апача вече ще е в групата на файла а не в others както е сега.


Титла: Re: Листване на файлове с определен собственик и група
Публикувано от: troll19 в Jun 16, 2012, 08:53
Най-лесно ще стане с командата find, разгледай man find.
Няма нужда да ги пайпваш, ползвай -exec.
Нещо от рода на:

Код:
find /tmp/ -type f -user root -exec chown my_user:http {} \;

В горното трябва да замениш само /tmp/, {} е намереният файл.

Ако държиш може и да ги пайпваш.


Титла: Re: Листване на файлове с определен собственик и група
Публикувано от: troll19 в Jun 16, 2012, 09:14
В горния пример find търси и в поддиректориите. Ако не искаш да е така го забрани (-maxdepth 1 в началото). Без -exec само ще покаже файловете.


Титла: Re: Листване на файлове с определен собственик и група
Публикувано от: Ali Nebi в Jun 16, 2012, 14:40
Ако искаш всички файлове под дадена директория да бъдат с myuser:http защо просто не направиш?

chown -R myuser:http /path/to/dir





Титла: Re: Листване на файлове с определен собственик и група
Публикувано от: clovenhoof в Jun 16, 2012, 17:13
В горния пример find търси и в поддиректориите. Ако не искаш да е така го забрани (-maxdepth 1 в началото). Без -exec само ще покаже файловете.

Рекурсивно ми трябва така че без maxdepth.

Идеално е: find /tmp/ -type f -user root  :) Ще свърши работа.

А, за какво служи наклонената черта в края? Само с {}  не е ли достатъчно?


Титла: Re: Листване на файлове с определен собственик и група
Публикувано от: b2l в Jun 16, 2012, 17:32
Ескейвапаш ; (точка и запетаята) и скрипта приключва работа.


Титла: Re: Листване на файлове с определен собственик и група
Публикувано от: clovenhoof в Jun 16, 2012, 20:23
Ескейвапаш ; (точка и запетаята) и скрипта приключва работа.

Аха. Сигурно заради exec-а.


Титла: Re: Листване на файлове с определен собственик и група
Публикувано от: SmashThePain в Jun 21, 2012, 13:18
Това което си описал може да се направи директно с chown.
Код:
chown -R --from=root:root my_user:http dir