Я пытаюсь выяснить способ рекурсивно установить разрешения для dirs и subdirs по определенному пути и 600 для файлов. Я бы использовал следующие команды:Как установить разрешения рекурсивно, 700 для папок и 600 для файлов, не используя find
find/path-type d -print0 | xargs -0 chmod 700
find/path-type f -print0 | xargs -0 chmod 600
Но у пользователя нет разрешения на выполнение команды «Найти». В качестве обходного пути я попытался создать сценарий, содержащий приведенные выше команды от пользователя root с установленным битом setuid, поэтому он будет работать с привилегиями root (например, командами passwd или sudo, которые обычные пользователи запускают с привилегиями root):
chmod 4755 script.sh
но я не могу выполнить скрипт из ограниченной учетной записи пользователя, он все еще говорит, что у меня нет разрешения на запуск команды find.
Кто-нибудь знает, как я могу это сделать, не используя команду «найти»?
Edit: ОС: Centos 6,5
Версия 'chmod' не работает должным образом,' X' является специальным исполнением, которое предоставит разрешения на выполнение, если выполняется хотя бы один из других режимов. Это означает, что если файл уже имел «x» в группе пользователей или другой, он останется с настройкой выполнения для пользователя. Чтобы сделать это только с помощью chmod, мы сначала должны уничтожить все параметры выполнения в начале, а затем запустим команду chmod. Например, 'chmod -R a-x/path; chmod -R u = rwX, g =, o =/path'. – CMCDragonkai