我想在目录中 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
启用了帐户。