使用 SUDO 在不可访问的目录内执行常规命令

使用 SUDO 在不可访问的目录内执行常规命令

我想在目录中 grep 某些内容。但用户没有该目录的权限。由于某些原因,我无权更改权限、组或所有者。只是想知道我是否可以通过 sudoers 文件中的某些条目访问该目录。

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

有没有办法使用 SUDO 执行上述命令?

答案1

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

sudo -i 将您进入交互模式,因此您的提示符将变为“#”,并且您运行的所有命令都将以 root 身份执行,直到您“退出”。

答案2

我不明白你的问题,为什么不直接使用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启用了帐户。

相关内容