-1

Я хочу что-то grep внутри каталога. Но у пользователя нет прав доступа в директории. Из-за некоторых причин мне не разрешено менять разрешения, группу или владельца. Просто хочу знать, что я могу получить доступ к этому каталогу по какой-то записи в файле sudoers.

grep -r "some phrase" /path/to/restricted-dir

Есть ли способ выполнить вышеуказанную команду, используя SUDO. ?

2 ответа2

0
sudo -i
grep -r "some phrase" /path/to/restricted-dir
exit

sudo -i переводит вас в интерактивный режим, поэтому ваше приглашение меняется на «#», и все команды, которые вы запускаете, выполняются от имени пользователя root, пока вы не «выйдете».

0

Я не понимаю вашу проблему, почему бы просто не использовать 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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .