Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 33
Infarch Сообщение 05/10/2010 12:48 Копия темы
Уважаемые линуксоиды, помогите пожалуйста Мне нужно в минимум команд сделать следующее:

1. Для папки и всех вложенных папок (много уровней) выставить права xxx
2. Для всех файлов в этой папке ( и во всех вложенных тоже) выставить права yyy

Можно такое сделать в пару команд или придется скрипты писать?
lilumi Сообщение 05/10/2010 13:09 Копия темы
перейти в необходимый каталог: cd /var/www/sites/site1
Сменить права на каталоги sudo find . -type d -exec chmod 755 \;
Сменить права на файлы sudo find . -type f -exec chmod 644 \;
Infarch Сообщение 05/10/2010 13:22 Копия темы
Попробовал и получил вот это:

root@voyager:~# find l1 -type d -exec chmod 755 \;
find: missing argument to `-exeс`

Я конечно не большой знаток но меня смущают фигурные скобки в конце. Для чего они?
idle Сообщение 05/10/2010 13:25 Копия темы
>find l1
Должно быть find . или find ./ или find /полны/путь
Фигурные скобки – переменная содержащая результат работы find.
Infarch Сообщение 05/10/2010 13:33 Копия темы
root@voyager:~# find ./l1 -type f -exec chmod 644
find: missing argument to `-exec'
root@voyager:~# find ./l1/ -type f -exec chmod 644
find: missing argument to `-exec'
root@voyager:~# find l1/ -type f -exec chmod 644
find: missing argument to `-exec'

Не получается  :( У меня в текущей директории есть папка l1 которую надо обработать. Никакие пути не подходят.
idle Сообщение 05/10/2010 13:35 Копия темы
Папка так и называется |1?
Это спецсимвол, его надо брать в кавычки – find '|1' 
lilumi Сообщение 05/10/2010 13:35 Копия темы
зайдите в эту папку l1 и из нее выполните команду find . -type d -exec chmod 755 \;
Infarch Сообщение 05/10/2010 13:37 Копия темы
Папка называется L1
Infarch Сообщение 05/10/2010 13:37 Копия темы
Так мне надо и на эту папку тоже права поменять той самой командой. Так что зайти – не выход.
Infarch Сообщение 05/10/2010 13:39 Копия темы
Для интереса попробовал зайти и в папке выполнить команду. Результат тот же самый.

root@voyager:~/l1# find . -type f -exec chmod 644
find: missing argument to `-exec'
idle Сообщение 05/10/2010 13:43 Копия темы
В конце надо поставить \;
lilumi Сообщение 05/10/2010 13:44 Копия темы
блин, да что вы прицепились к этом названию ~/l1

Зайдите в папку где нужно поменять права и введите в точности ту команду, что я вам предложил!
find . -type d -exec chmod 755 \; 
Никаких l1 там не пишите!!!
Infarch Сообщение 05/10/2010 13:48 Копия темы
Аналогично:

root@voyager:~/l1# find . -type f -exec chmod 644 \;
find: missing argument to `-exec'
Infarch Сообщение 05/10/2010 13:50 Копия темы
Не цепляюсь я к ней, просто права надо сменить на определенной папке и ее содержимом используя минимум операций. А если входить в папку, то придется потом на нее отдельно менять права. Да и переход между папками тоже придется делать. заметть что эта папка находится среди прочих которые не должны быть затронуты.
lilumi Сообщение 05/10/2010 13:51 Копия темы
а ну напишите команду: find . -type f 
В результате ее работы должно вывести все файлы в этой директории
idle Сообщение 05/10/2010 13:53 Копия темы
\; Между скобками и слэшем должен быть пробел – \;.
lilumi Сообщение 05/10/2010 13:55 Копия темы
я в шоке, как человек, в команде, которую нужно только скопипастить допускает столько ошибок :))))
idle Сообщение 05/10/2010 14:01 Копия темы
Наверно прямо перед ним сидит.
Infarch Сообщение 05/10/2010 14:02 Копия темы
Вот это да, а пробел то я и не заметил. Простите что морочил голову. Скопипастить к сожалению не мог, так как машины разные, вот и вышла ошибка. Теперь все работает, даже сакральная L1 :)
Спасибо!
lilumi Сообщение 05/10/2010 14:05 Копия темы
>используя минимум операций
А это что — задачка на олимпиаде??
Ну поменяете потом права на папку отдельной командой: chmod 755 ~/l1
Infarch Сообщение 05/10/2010 14:11 Копия темы
Тут есть свои нюансы. Нужно выполнить несколько команд на удаленной машине по SSH в автоматическом режиме. Так сложилось что наиболее надежный вариант вышел использовать WinSCP в пакетном режиме. Но он иногда теряет связь, тоесть есть риск что некоторые команды выполнены не будут. Поэтому я стараюсь свести к минимуму колличество команд, чтобы все было надежно. Конечно можно было бы пересмотреть всю эту систему, но к сожалению клиент не хочет менять устоявшиеся методы работы.
lilumi Сообщение 05/10/2010 14:19 Копия темы
если честно, то я не понял зачем здесь пакетный режим? Что, эта команда будет выполняться раз в какой-то период?
Я бы просто через putty (если вы под виндой) зашел по ssh на тот сервер и в консоли выполнил бы все эти команды
Infarch Сообщение 05/10/2010 14:22 Копия темы
Так точно. Именно раз в некий период, на основе сгенерированного другими скриптами набора команд. Из консоли я бы не парился :)
idle Сообщение 05/10/2010 14:24 Копия темы
А зачем через winscp то? Для периодического выполнения команд есть crontab.
Infarch Сообщение 05/10/2010 14:28 Копия темы
Период увы не постоянный. Кроном вообще шикарно было бы. Даже я виндузятник про него знаю :) Тем более как я писал перед этим, команды несколько отличаются от случая к случаю.
maksim000 Сообщение 05/10/2010 14:29 Копия темы
А ru.wikipedia.org/wiki/Noh... в данном случае не подойдёт?
Infarch Сообщение 05/10/2010 14:35 Копия темы
Интересная вещь, почитаю про нее. Однако выполнять эту команду все равно придется в пакетном режиме WinSCP. Не подскажете, нельзя ли в линуксе выполнить этот nohup относительно не одной команды, а группы?
maksim000 Сообщение 05/10/2010 14:39 Копия темы
Эээ, да я сам нубоват в этом деле...
С другой стороны, а что мешает вместе с ним выполнить скрипт? nohup ./script.sh
Infarch Сообщение 05/10/2010 14:44 Копия темы
Тогда получается что script.sh должен присутствовать на удаленной машине. То есть надо его залить туда. В общем тут по моему выходит "шило на мыло". Хотя утилитка сама по себе занятная, может и приспособлю ее куда. Спасибо.
russkiy-lance Сообщение 05/10/2010 15:45 Копия темы
простите, а чем просто  chmod -R не подходит?
idle Сообщение 05/10/2010 15:47 Копия темы
Надо директории отдельно, обычные файлы отдельно.
russkiy-lance Сообщение 05/10/2010 15:53 Копия темы
это зависит от того какие права надо добавить/ убрать

в общем случае конечно лучше через  find, но  мне всегда хватало 2 прохода чмодом

стандартный пример  – всем файлам надо 644 а папкам 755

chmod -R 644 ./
chmod -R ugo+X ./

Чуть не забыл! Делать такой фокус можно только под рутовыми правами иначе после  первой команды  папки станут недоступны
doctor-tux Сообщение 05/10/2010 16:04 Копия темы
Хе! :)
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"