Что делает эта команда «найти»?

Что делает эта команда «найти»?

Я новичок в Linux и пока работаю, выполнил следующую команду /root:

find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \

Я хотел запустить это в определенной папке, но не заметил, что нахожусь в /root.

Повлияло ли это на все файлы на компьютере?

решение1

При наличии достаточных прав findкоманды рекурсивно изменят биты разрешений всех файлов 660и всех каталогов, 770начиная с каталога, в котором они запущены.

Поскольку вы находились в /root( rootдомашнем каталоге ) и если вы работали под именем , rootа владельцем user:groupявляется root:root, это не должно быть серьезной проблемой, за исключением того, что некоторые определенные программы могут жаловаться на некоторые определенные файлы или каталоги, например, sshмогут жаловаться на разрешения /root/.sshкаталога и /root/.ssh/authorized_keysфайла при выполнении аутентификации на основе ключей; вам нужно исправить это вручную.

Кроме того, не запускайте бездумно ни одну из найденных команд. Сначала следует спросить, что делает команда, а затем уже запускать ее.

решение2

Эта команда находит все каталоги из каталога, в котором вы запустили команду, и изменяет их разрешения. Затем она делает то же самое, но с файлами. В этом случае команда изменяет разрешения каталогов, чтобы у вас был полный доступ, но у других пользователей не будет никакого доступа. Если вы единственный пользователь системы, то это не должно иметь значения. Затем команда изменяет разрешения файлов в /root, чтобы разрешить только чтение и запись, но не разрешить выполнение. Вы можете обнаружить некоторые проблемы с запуском программ и скриптов, но ничего, что имело бы большое значение. Другие пользователи также не будут иметь никакого доступа к файлам в /root.

Если вы нашли скрипт или программу, которую не можете запустить изнутри, /rootвы можете просто выполнить следующую команду для файла:

sudo chmod 775 filename

где filenameзаменяется на имя файла, который вы пытаетесь запустить

Если в системе есть и другие пользователи, и вы хотите, чтобы все они могли читать из каталогов и файлов, возможно, стоит выполнить команду еще раз, но немного изменить ее на:

find . -type d -exec chmod 775 {} \; && find . -type f -exec chmod 664 {} \;

решение3

Первая точка после команды — это корень дерева, в котором findвыполняется поиск. Так что она повлияла на файлы папки, в которой вы ее запустили, и на все дерево под ней.

Связанный контент