Когда я набираю команду типа find / -name ??.conf
, вывод включает в себя множество каталогов, таких как:
find : /home/simmer/.local/share/gvfs-metadata : Permission Denied
Я не получаю желаемого результата.
Но если я использую ту же команду с sudo
sudo find : /home/simmer/.local/share/gvfs-metadata
, то это показывает ожидаемый результат.
Зачем мне sudo
привилегии для этого?
Вы не должны получать эту ошибку, так как каталог должен принадлежать вам. Я полагаю, вы запускали графические приложения с sudo
.
Войдя в систему под своим именем, исправьте владельца (пожалуйста, всегда будьте осторожны при использовании chown
с sudo
).
sudo chown -R $USER: ~/.local/share/gvfs-metadata
Теперь вам не понадобится sudo
для поиска в этом каталоге.
Как правило, ошибки разрешения с find
возникают из-за того, что у вас нет разрешения на чтение каталога, что имеет место для многих системных каталогов, принадлежащих пользователю root. Вы можете использовать sudo find
(будьте очень осторожны перед добавлением и действиями в команде) или, если вы не хотите выполнять поиск с правами суперпользователя, просто отбросьте ошибки, чтобы очистить результаты, добавив 2>/dev/null
к вашей команде ...
find /some/path -some_test some_condition 2>/dev/null
Если команда find
выполнена не суперпользователем, она не сможет получить доступ к файлам и каталогам, которые не принадлежат пользователю, или если разрешения «r, w, x» не были предоставлены этому пользователь. Если вы хотите проверить это, введите
ls -l /home/simmer/.local/share/gvfs-metadata
Эта команда должна возвращать что-то вроде:
drwx------ 2 simmer simmer 12288 Jun 8 17:39 gvfs-metadata
Первый столбец представляет разрешения, установленные владельцами файла или каталога. Третий и четвертый столбцы представляют владельца и группу файла / папки соответственно.
Если вы не являетесь владельцем или у вас недостаточно прав, как указано в первом столбце, программа find
не сможет получить к ним доступ. Однако использование команды sudo
повышает ваши привилегии и, таким образом, поскольку команда find
теперь выполняется суперпользователем, к каталогу и его подкаталогам теперь можно получить доступ.