Я не понимаю вашу проблему, почему бы просто не использовать sudo
?
sudo grep -r "some phrase" /path/to/restricted-dir
Например:
$ sudo tree -up
.
└── [drwx------ root ] foo
├── [drwx------ root ] bar
│ └── [drwx------ root ] baz
│ └── [drwx------ root ] foobar
│ └── [-rwx------ root ] foo.txt
└── [-rwx------ root ] foo.txt
4 directories, 2 files
Как вы можете видеть выше, у меня есть структура папок с тремя вложенными подкаталогами foo
все из которых принадлежат root, и только root имеет к ним доступ. Поэтому запуск обычного grep
завершается неудачно:
$ grep -r foo foo/
grep: foo/: Permission denied
Запуск с sudo
работает отлично и находит строку foo
в обоих файлах, которые ее содержат:
$ sudo grep -r foo foo/
foo/bar/baz/foobar/foo.txt:foobar
foo/foo.txt:foobar
Для более сложных команд вы можете использовать либо sudo -i
как предложено @FrankThomas, либо su
если у вас включена учетная запись root
.