Рекурсивное изменение прав доступа или владельца только у файлов или директорий


Zeboton

Если нужно изменить права на доступ или владельца только для файлов:

find . -type f -exec chmod 644 {} \;
find . -type f -exec chown :www-data {} \;

В первой строке всем файлам в текущей директории («.») устанавливаются права 644.

Вторая строка меняет группу у файлов в текущей директории на www-data.

Если нужно изменить права/владельца не в текущей директории, то вместо точки после команды find нужно указать полный путь.

Пример: 

find /home/user/private -type f -exec chmod 600 {} \;

Изменение прав доступа или владельца только у директорий:

find . -type d -exec chmod g+w {} \;
find . -type d -exec chown :www-data {} \;

В первой строке всем директориям в текущей директории даётся право на запись для группы.

Во второй строке  всем директориям в текущей директории устанавливается группа www-data.

vsftpd, как я его использую. Разграничение доступа на FTP-ресурсе – все просто же!


Softovick

Если кто не в курсе, есть такой сервер ftp, под названием vsftpd. Попробовав его раз, я остался на нем на все время. Если внимательно посмотреть по ссылке, то можно увидеть, что почти все сервера известных дистрибутивов GNU/Linux и других проектов OpenSource работают на нем.
Ничего более наглядного и простого я пока не встречал. Вариант в виде ProFTPD меня не устроил несколько громоздкой настройкой… Впрочем, его тоже можно настроить достаточно удобно, через WebMin, но речь я поведу не об нем…
По умолчанию vsftpd либо работает только на чтение, либо дает доступ на редактирование всем (ну, разве что разграничивает доступ на уровне авторизованный /анонимный пользователь). Сначала меня это устраивало, но в один момент понадобилось, чтобы парочка пользователей все таки умела писать, а другие все только читали.
Я использую авторизацию пользователей, заведенных в системе (мне так удобнее, чем делать виртуальных). И через некоторое время изучения интернета меня осенило… Теперь у меня все имеют доступ на редактирование и запись в FTP, но разграничение происходит уже на уровне ACL файлов — там я просто запрещаю доступ на редактирование в папке или файла — и тогда пользователь не сможет ни удалить, ни создать, зато сможет спокойно прочитать.
Есть также мысля использовать для этих целей особую группу и дать доступ на редактирование только ей, соответственно угодных мне пользователей включать в нее, а при необходимости просто исключить.
Не спорю, что мой способ не так элегантен, зато он работает и меня устраивает. К тому же настраивается vsftpd гораздо проще, чем ProFTPD, если не устраивают настройки по умолчанию.