Автор Тема: Листване на файлове с определен собственик и група  (Прочетена 1410 пъти)

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Имам една папка в която освен файлове с root:root собственост, има и файлове с http:http собственост.
Как да chown-на само файловете които са root:root на <my_user>:http, a тези с http:http да си останат?
Ако успея да ги листна вече ще ги пайпна към chown.

Става дума за едно web-app (за по-лесно - сайт) и идеята е да мога сваля правата на others. В момента се налага някои папки в структурата на приложението да са с права 777 за да може апача или php да пише в тях. След промяната ще мога да ги намаля на 775 или 770, защото юзера на апача вече ще е в групата на файла а не в others както е сега.
« Последна редакция: Jun 16, 2012, 08:31 от clovenhoof »
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

troll19

  • Участници
  • ***
  • Публикации: 4
    • Профил
Най-лесно ще стане с командата find, разгледай man find.
Няма нужда да ги пайпваш, ползвай -exec.
Нещо от рода на:

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

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

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

troll19

  • Участници
  • ***
  • Публикации: 4
    • Профил
В горния пример find търси и в поддиректориите. Ако не искаш да е така го забрани (-maxdepth 1 в началото). Без -exec само ще покаже файловете.
Активен

Ali Nebi

  • Напреднали
  • *****
  • Публикации: 394
  • Distribution: Centos, Debian, Fedora, Ubuntu
  • Window Manager: Gnome
    • Профил
Ако искаш всички файлове под дадена директория да бъдат с myuser:http защо просто не направиш?

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



Активен

Не се задоволявай да бъдеш дим, когато можеш да бъдеш огън!

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
В горния пример find търси и в поддиректориите. Ако не искаш да е така го забрани (-maxdepth 1 в началото). Без -exec само ще покаже файловете.

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

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

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

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Ескейвапаш ; (точка и запетаята) и скрипта приключва работа.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

clovenhoof

  • Напреднали
  • *****
  • Публикации: 534
  • Distribution: Mac OSX 10.9.2
    • Профил
Ескейвапаш ; (точка и запетаята) и скрипта приключва работа.

Аха. Сигурно заради exec-а.
Активен

We are just a moment in time
A blink of an eye
A dream for the blind
Visions from a dying brain

SmashThePain

  • Напреднали
  • *****
  • Публикации: 21
    • Профил
Това което си описал може да се направи директно с chown.
Код:
chown -R --from=root:root my_user:http dir 

Активен