Usando o SUDO para executar um comando geral dentro de um diretório não acessível

-1

Eu quero grep algo dentro de um diretório. Mas o usuário não tem permissões no direcotry. Por causa de algumas razões, não estou autorizado a alterar permissões, grupo ou proprietário. Só quero saber que eu posso acessar esse diretório por alguma entrada no arquivo sudoers.

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

Existe alguma maneira de executar o comando acima usando o SUDO. ?

Unnikrishnan
fonte

Respostas:

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

sudo -i coloca você no modo interativo, então seu prompt se torna '#' e todos os comandos que você executa são executados como root, até que você 'saia'.

Frank Thomas
fonte
0

Eu não entendo o seu problema, porque não basta usar sudo?

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

Por exemplo:

$ 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

Como você pode ver acima, eu tenho uma estrutura de pastas com três subdiretórios aninhados, footodos de propriedade do root e somente o root tem acesso a eles. Portanto, a execução normal grepfalha:

$ grep -r foo foo/
grep: foo/: Permission denied

Rodando com sudofunciona perfeitamente e encontra a string fooem ambos os arquivos que a contêm:

$ sudo grep -r foo foo/
foo/bar/baz/foobar/foo.txt:foobar
foo/foo.txt:foobar

Para comandos mais complexos, você pode usar sudo -icomo sugerido por @ FrankThomas ou suse você tiver a rootconta ativada.

Terdon
fonte