当我想vimdiff
根文件时,我根据这个建议使用以下别名。
alias sudovimdiff='SUDO_EDITOR=vimdiff sudoedit'
然后我可以使用以下命令。
$ sudovimdiff /root/a /root/b
但是,如果我的用户可以写入其中一个文件,则该命令将失败。
$ sudovimdiff /root/a /tmp/b
sudoedit: /tmp/b: editing files in a writable directory is not permitted
有没有办法使用我的用户的环境设置(即)vimdiff 一个根文件和一个非根文件sudoedit
?
可能与该 sudoedit 错误消息有关:
请尝试使用 修改 sudoers 文件
sudo visudo
,添加一行:更多在这里。
从
man sudo
,在描述-e
(又名sudoedit
)的部分:所以,要么:
sudoedit
我们以 root 身份调用,这将破坏目的或我们将用户的文件复制到用户不可编辑的新目录:
我们编辑根文件并在里面进行比较:
由于
sudoedit
处理所有非 sudo 参数文件名,您可以使用包装脚本: