
Я новичок в 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
выполняется поиск. Так что она повлияла на файлы папки, в которой вы ее запустили, и на все дерево под ней.