![sudoedit 非根目录中的根拥有的文件](https://linux22.com/image/109011/sudoedit%20%E9%9D%9E%E6%A0%B9%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%A0%B9%E6%8B%A5%E6%9C%89%E7%9A%84%E6%96%87%E4%BB%B6.png)
为什么我不能编辑 root 拥有的文件,但在我的个人目录深处的某个地方,它说:
sudoedit: existingFile: editing files in a writable directory is not permitted
虽然我定义了以下函数:
function sunano {
export SUDO_EDITOR='/usr/local/bin/nano'
sudoedit "$@"
}
我这样编辑:
sunano existingFile
该文件确实由 root 拥有:
ls -l existingFile
证明:
-rwxr-xr-x 1 root root 40 Jun 15 2015 existingFile
答案1
这联机帮助页说
位于调用用户可写的目录中的文件可能无法编辑,除非该用户是 root(版本 1.8.16 及更高版本)。
如果您可以写入包含该文件的目录,那么您可以在实践中编辑它,而无需sudoedit
(尽管您可能无法读取其当前内容):您可以将其移开并使用相同的内容创建一个新文件姓名。在您的特定情况下,您可以读取该文件,并且您应该发现至少有一些编辑器允许您编辑它(至少是那些通过写入临时文件并将其重命名到位来保存文件的编辑器)。
此功能背后的原因如下sudo
错误 707:基本上,允许用户编辑可以写入的目录中的文件sudoedit
可以让他们绕过配置中设置的限制sudoedit
(并有效地编辑系统上的任何文件)。