uzak писал(а): ↑28.10.2014 01:02
Можно ли ограничиться только одной командой chmod без find, чтобы рекурсивно выставить права только на файлы в каталоге? или только на папки а файлы не трогать? Вроде давно где-то видел такое, в манах ничего не нашел.
Нет. Если нужно именно то, что вы описали, то без find не обойтись. Но если вся требующаяся разница между файлами и каталогами заключается в флаге выполнения, то см. ниже.
uzak писал(а): ↑28.10.2014 01:02
Заодно спрошу гугру баша о предназначении X прав (chmod +X)
выполнение (или доступ к каталогу) (x); выполнение, если файл является каталогом или уже имеет право на выполнение для какого-нибудь пользователя (X)
Не могу понять. x - на чтение (поиск файлов в каталоге), X - права на исполнение файлов в каталоге, так что ли?
"x" (строчный), если применяется к файлу, означает выполнение, а если к каталогу - использование в качестве каталога: вход, обращение к имеющимся в нём файлам, и т.д. Не путать с чтением: если чтение разрешено, а выполнение - нет, то вы можете только посмотреть список файлов, не более. И наоборот, если выполнение разрешено, а чтение нет, то вы можете использовать каталог по назначению, но только если откуда-то из сторонних источников знаете, какие в нём файлы. Получить их список нельзя, а обращаться, если имя известно - можно.
"X" (заглавный) - это не права, а chmod-специфичный флаг. При снятии эквивалентен "x". При установке означает установить "x", но не везде, а у всех каталогов и тех файлов, у которых "x" уже для кого-нибудь установлен. Т.е. если файл разрешено исполнять, допустим, группе, то chmod a+X сделает его исполнимым для всех, а если не разрешено исполнять никому, то так всё и останется.