Аргумент - exclude-dir
- это шаблон, который сопоставляется с базовым именем каталога, то есть частью без ведущих родительских каталогов. Например, - exclude-dir = nesteddir
исключает как dir / nesteddir
, так и otherdir / nesteddir
(и их подкаталоги).
Невозможно исключить один каталог без исключения других каталогов с тем же именем, используя только GNU grep. Вам нужно использовать более сложный метод выбора файлов, например GNU find:
find -path dir/nesteddir -prune -o -type f -exec grep -H 'pattern' {} +
Пользователь root всегда имеет полный доступ на запись к любому файлу, независимо от его режима.
Возможно, лучшим примером является / etc / shadow
, который соответствует режиму 000, но, конечно, может быть изменен пользователем root:
[root@centos7 ~]# ls -pl /etc/shadow
----------. 1 root root 1353 Oct 26 07:40 /etc/shadow
Как указано в комментариях, первоначальный ответ был несколько неясным.
Владелец файла всегда может изменить разрешения любого файла, которым он владеет (в то время как root может сделать это для всех существующих файлов).
Если вы обычный пользователь, это зависит от того, как вы пытаетесь изменить read-only-файл:
Если вы являетесь пользователем root, вы можете перезаписывать и изменять любой файл, но программа vi будет учитывать разрешение только для чтения и попросит подтверждения.
Файл /etc/sudoers всегда должен изменяться командой "visudo", которая открывает содержимое реального файла во временном файле и делает несколько проверок перед сохранением изменений. Как пользователь root-User изменения могут быть записаны, несмотря на права только для чтения.