Coo*_*max 6 linux sudo vim text-editors crontab
我在 Debian Squeeze 上使用 Bash。我刚刚阅读了这个主题:将 crontab 的默认文本编辑器更改为 vim
我已经为普通用户和 root导出了变量VISUAL
和EDITOR
vim。这是有效的 - 当我crontab -e
以普通用户或 root 身份输入时,crontab 运行 vim 进行编辑。
但是运行sudo crontab -e
打开nano。
运行sudo echo $EDITOR
(或$VISUAL
)给出了vim
int 输出。
默认情况下,出于安全目的,sudo
不保留用户环境。
有多种方法可以解决这个问题;对于您的具体情况,我建议将VISUAL=/usr/bin/vim
(以及EDITOR=/usr/bin/vim
使用错误程序的程序)添加到/etc/environment
.
第二个选择,如果你有一个宽松的 sudo 配置(可能是因为它只是你,或者所有 sudo 用户都拥有真正的 root 访问权限)是运行visudo
并添加Defaults env_keep="VISUAL EDITOR"
以允许所有sudo 用户指定他们自己的(即保留该环境变量)。
您现有的 sudoers 文件可能已经(或包含)一个或多个 env_keep 语句,例如(来自 pastebin 示例):
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Run Code Online (Sandbox Code Playgroud)
这些env_keep
行中的第一行将覆盖您在其上方所做的任何编辑(分配),其他行扩展列表 ( +=
)。为了让一切按照您习惯的方式工作,除非您有理由更改设置,否则我建议在这些内容之后立即添加一行:
Defaults env_keep += "VISUAL EDITOR"
Run Code Online (Sandbox Code Playgroud)
(还有其他选项可以使用您首选的编辑器,但它们要么过于复杂,要么过于宽松和危险,因此您必须阅读man sudoers
,自己弄清楚它们,并了解相关的问题可能是什么。)
归档时间: |
|
查看次数: |
4068 次 |
最近记录: |