В настоящее время я должен изменить разрешение для всех файлов, соответствующих критериям g = 000 (имеется в виду, что у группы нет разрешения на чтение, нет разрешения на запись и нет разрешения на выполнение), которые находятся в каталоге, содержащем ~ 50 файлов. Я с Linux и работаю на терминале, используя команду Shell.
Например, вот первые 6 (мое имя было заменено пользователем):
-r--r----- 1 user user 0 Sep 23 19:06 fichier_1
-r-x----r- 1 user user 0 Sep 23 19:06 fichier_10
-r--r----- 1 user user 0 Sep 23 19:06 fichier_11
-rwxr----- 1 user user 0 Sep 23 19:06 fichier_12
-r-x---r-- 1 user user 0 Sep 23 19:06 fichier_13
-rw---x--- 1 user user 0 Sep 23 19:06 fichier_14
Если они соответствуют критериям g = ---, им нужно иметь всеих «другие» разрешения также удалены, но пользовательские разрешения должны остаться прежними. В этом случае файлы теперь будут выглядеть следующим образом (2-й и 5-й файлы потеряли все «чужие» права):
-r--r----- 1 user user 0 Sep 23 19:06 fichier_1
-r-x------ 1 user user 0 Sep 23 19:06 fichier_10
-r--r----- 1 user user 0 Sep 23 19:06 fichier_11
-rwxr----- 1 user user 0 Sep 23 19:06 fichier_12
-r-x------ 1 user user 0 Sep 23 19:06 fichier_13
-rw---x--- 1 user user 0 Sep 23 19:06 fichier_14
Мне нужно использовать только 1 команду, поэтому я не могу их сделатьпо одному. Я пытался использовать команды find
и chmod
, но я просто не могу заставить команду find
работать, чтобы найти все файлы с g = --- (или 000).
Моя первая попытка была такой:
$ find /home/mael/tp1_inf1070/World/permissions -type f -perm g=000 -exec chmod o= {} \;
, которая дала:
find: invalid mode ‘g=000’
Это не работает просто с g = --- или просто с 'g ='.
Если я попытаюсь сделать первый шаг,
$ find -perm 'g=000'
Я не получу никакого вывода.
Я мог бы просто сделать:
$ find -perm 700, 600, 400, 707, 704, 706, 707
Чтобы найти все файлы без разрешения группы, но как потом применить chmod к этим файлам, чтобы удалить все права «других», но разрешение их пользователей осталось прежним?
Есть идеи о том, как действовать? ? Спасибо.