- Linux / Unix Find Command Avoid Permission Denied Messages
- Find command basic syntax
- How to hide or fix find command permission denied messages
- How does it works?
- Exclude all “permission denied” messages from “find” command on Linux
- Conclusion
- [Linux.wiki] Права доступа в Ubuntu.
- Ошибка «Permission denied» в Linux
- Изменение прав в терминале
- Изменение прав в файловом менеджере
- В заключение
Linux / Unix Find Command Avoid Permission Denied Messages
W hen I type find . -type d -name «foo» command I get Permission denied error messages. How do I exclude all “permission denied: messages from the find command under Linux or Unix like operating systems?
The find command is used to locate files on a Linux or Unix like operating system. The find command will search directory to match the supplied search criteria. You can search for files by
Tutorial details | |
---|---|
Difficulty level | Easy |
Root privileges | No |
Requirements | find command+ Unix like os |
Est. reading time | 2m |
type, name, owner, group, date, permissions and more. By default the find will search all subdirectories for you. Let us see how to hide and fix permission denied message when using the find on Linux or Unix-like system.
Find command basic syntax
The syntax is as follows:
find where-to-look criteria action
find /dir/to/search -name filetosearch
find /dir/to/search -name «*.c»
find /home/nixcraft/project/ -name «*.py» -print
In this example, find will search the /tmp directory for any files named “data*.txt” and display their pathnames:
Fig. 01: Find will show an error message for each directory on which you don’t have read permission.
How to hide or fix find command permission denied messages
In this above example, I do not have read permission for vmware-root and orbit-Debian-gdm directories. To to avoid this problem try the following syntax:
Sample outputs without permission denied spam from find command:
How does it works?
The 2>/dev/null at the end of the find command tells your shell to redirect the error messages (FD #2) to /dev/null, so you don’t have to see them on screen. Use /dev/null to to send any unwanted output from program/command. All data written on a /dev/null special file is discarded by the system. To redirect standard error to /dev/null and store file list to output.txt, type:
Exclude all “permission denied” messages from “find” command on Linux
There is one problem with the following command. It would filter out all error messages created by find command, not just the permission denied ones:
To avoid that try the following find command along with grep command on Linux or Unix-like systems:
In short you should use following syntax to skip “permission denied” errors messages when running find in Linux or Unix-based systems:
To store output to a file run:
- No ads and tracking
- In-depth guides for developers and sysadmins at Opensourceflare✨
- Join my Patreon to support independent content creators and start reading latest guides:
- How to set up Redis sentinel cluster on Ubuntu or Debian Linux
- How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
- How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
- A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
- How to protect Linux against rogue USB devices using USBGuard
Join Patreon ➔
Conclusion
You learned how to hide and fix permission denied messages when using the find command on your Linux, Unix, or macOS-based systems. Of course, we can also run the command as sudo when possible but avoid all this mess. Unfortunately, you will not get sudo or root access at all times. Hence, we talked about various methods here. For your ready references, sudo syntax would be as follows:
sudo find /dir/to/search -name «pattern» -action
sudo find / -name «jail.conf» -print
Please see find/bash command man page online or read it by typing the following man command:
man find
man bash
man zsh
man ksh
🐧 Get the latest tutorials on Linux, Open Source & DevOps via
Category | List of Unix and Linux commands |
---|---|
Documentation | help • mandb • man • pinfo |
Disk space analyzers | df • duf • ncdu • pydf |
File Management | cat • cp • less • mkdir • more • tree |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Linux Desktop Apps | Skype • Spotify • VLC 3 |
Modern utilities | bat • exa |
Network Utilities | NetHogs • dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • glances • gtop • jobs • killall • kill • pidof • pstree • pwdx • time • vtop |
Searching | ag • grep • whereis • which |
Shell builtins | compgen • echo • printf |
Text processing | cut • rev |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Comments on this entry are closed.
Both errors and warning are thrown into stderr is there any way we can identify that the command has a warning in it and not the error ??
Apart from checking the return code !!
Just use sudo (assuming you’re not running it in a script)
Источник
[Linux.wiki] Права доступа в Ubuntu.
Когда вы начинаете работать с Линуксом у Вас могут возникнуть трудности с открытием того или иного файла, переходом в какую-либо директорию или тп.
Вы можете увидеть следующего вида сообщение:
alexander@srv-ubuntu:
$ cat permissions.txt
cat: permissions.txt: Permission denied
Для того чтобы понять что и кому можно делать с файлом и вообще что это за объёкт нужно ввести команду:
ls -l filename
Или просто ls -l и вам покажут все файлы в текущем каталоге (в том каталоге где вы находитесь).
Например, в моём домашнем каталоге:
alexander@srv-ubuntu:
$ ls -l
total 64
drwxrwxr-x 2 alexander alexander 4096 May 8 08:30 backups
-rwxrwxr— 1 alexander alexander 39 Jun 4 17:43 helloworld.sh
-rw——- 1 alexander alexander 33838 Jun 3 18:37 it-inside_logo.jpg
-rw——- 2 alexander alexander 233 Jun 3 18:47 my_vs_info.txt
-rwxrwxrwx 1 alexander alexander 37 Jun 4 18:20 permissions_all.txt
—w-rw-r— 1 alexander alexander 37 Jun 4 18:00 permissions.txt
drwxrwxr-x 2 alexander alexander 4096 May 8 08:34 recovers
lrwxrwxrwx 1 alexander alexander 14 Jun 3 18:46 soft_link_my_vs_info.txt -> my_vs_info.txt
-rw——- 2 alexander alexander 233 Jun 3 18:47 test_ln_my_vs_info.txt_
В левой колонке отображаются права доступа (-rwxrwxrwx). Так же вы видите кому принадлежит файл (alexander alexander).
В блоке (alexander alexander) первым указывается имя пользователя кому принадлежит файл, вторым группа которой принадлежит файл. Они могут быть одинаковыми или разными.
Рассмотрим блок (-rwxrwxrwx).
Первый символ (-). Эта позиция отвечает за тип файла (-) обозначает обычный файл (картинки, текст, видео и тп)
Тут может быть (d) – директория. Например, в моём домашнем каталоге есть директория=папка backups.
(l) – символьная ссылка. Например, soft_link_my_vs_info.txt. По сути это ярлык в терминологии Windows. Этот ярлык ссылается на другой файл (soft_link_my_vs_info.txt -> my_vs_info.txt).
Есть и другие варианты. Смотри ссылку в конце.
Следующие 9 символов (rwxrwxrwx) обозначают права доступа для владельца-u, группы-g и всех остальных.
Например, для файла helloworld.sh – это скрипт, его можно запускать и он будет что-то делать.
-rwxrwxr–
uuugggooo
Это означает. Что для владельца-u доступно следующее:
r-read – читать
w-write – писать
x-execute – выполнять
По сути, владелец может делать всё что угодно с этим файлом. Члены группы к которой принадлежит данный файл тоже могут делать всё (rwx).
А вот все остальные пользователи могут только читать (r–). Доступа к записили и исполнению у них нет.
Для каталогов тоже есть такие параметры. Например, для backups (drwxrwxr-x).
d – означает, что это директория
Пользователь и группа могут делать всё что захотят.
r – чтение в данном случает означает, например, то что владелец может просмотреть содержимое директории – прочитать список назходящихся в ней файлов.
w – запись – вы можете создавать и удалять файлы в этой директории.
x – можете перейти в эту директорию.
Например, в данной директории пользователи не входящие в группу alexander не могут создавать файлы, но могут просмотреть её содержимое и перейти в неё.
Если директория будет иметь следующие права:
alexander@srv-ubuntu:
$ ls -l | grep dir_permissions
dr—r—r— 2 alexander alexander 4096 Jun 4 18:39 dir_permissions
То владелец сможет посмотерть её содержимое(но не увидет права доступа, просто файлы), но не сможет в неё перейти:
alexander@srv-ubuntu:
$ ls -l dir_permissions/
ls: cannot access dir_permissions/testfile.txt: Permission denied
total 0
-. ? ? ? ? ? testfile.txt
Перейти в директорию нельзя:
alexander@srv-ubuntu:
$ cd dir_permissions/
-bash: cd: dir_permissions/: Permission denied
При полном запрете будет просто отказ в доступе:
alexander@srv-ubuntu:
$ ls -l dir_permissions/
ls: cannot open directory dir_permissions/: Permission denied
Теперь Вы сможете понять причину по которой у Вас не получается что-то сделать с файлом =)
Источник
Ошибка «Permission denied» в Linux
Все операционные системы семейства Linux имеют четко разграниченные права доступа. В своей домашней директории пользователь может делать все, что ему угодно, до тех пор, пока укладывается в отведенные рамки. Попытка выйти за них приводит к появлению ошибки «Permission Denied».
Изменение прав в терминале
Рассмотрим вариант, в котором необходимо прочесть текстовый документ, созданный другим пользователем. Файлы TXT в Linux можно просматривать непосредственно в терминале с помощью команды «cat».
- Заходим в каталог с интересующим нас документом. Набираем команду «cat filename», подставляя вместо «filename» имя нужного файла. На скриншоте показана ошибка «Permission Denied», выглядящая в русской локализации как «Отказано в доступе».
Получаем ошибку «Permission Denied» при попытке просмотреть содержимое файла
Проверяем права доступа к документу используя команду «ls -l»
Используем команду «chmod» и административные права для получения доступа
Просматриваем содержимое текстового документа командой «cat»
Изменение прав в файловом менеджере
Разберемся, как выполнить рассмотренную выше операцию в графическом интерфейсе, используя файловый менеджер из дистрибутива.
- Как видно на скриншоте, значок файла изначально имеет дополнительные символы, указывающие на то, что доступ у нему ограничен. При попытке посмотреть содержимое получаем графический вариант ошибки «Permission Denied».
При попытке открыть текстовый документ получаем ошибку «Permission Denied»
Открываем меню «Файл» и перезапускаем файловый менеджер от имени root
Набираем пароль root в окне аутентификации
Открываем параметры файла с помощью контекстного меню
На вкладке «Права» разрешаем доступ для группы root и остальных пользователей
Открываем ранее недоступный файл в режиме чтения и изучаем содержимое
В заключение
Как видим, избавиться от ошибки Permission Denied достаточно просто. Решив изменить правда доступа к системным файлам, лишний раз убедитесь, что полностью уверены в своих действиях и понимаете последствия вносимых изменений.
Источник