AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 625821
Accepted
Tosh
Tosh
Asked: 2015-05-20 12:11:35 +0800 CST2015-05-20 12:11:35 +0800 CST 2015-05-20 12:11:35 +0800 CST

为什么我必须使用“visudo”来编辑“/etc/sudoers”文件?

  • 772

在/etc/sudoers中,它说:

# This file MUST be edited with the 'visudo' command as root.

我的问题是,为什么必须使用 编辑此文件visudo?

看来我能够gedit通过发出以下命令成功地编辑文件:

sudo gedit /etc/sudoers

如果我能够使用 编辑它gedit,为什么我必须使用visudo?

sudo
  • 3 3 个回答
  • 4245 Views

3 个回答

  • Voted
  1. Best Answer
    Pilot6
    2015-05-20T12:14:08+08:002015-05-20T12:14:08+08:00

    使用起来更安全visudo。你可以/etc/sudoers直接编辑,但是如果你在那里打错了,你就不能再使用sudo了。并且无法修复您的错误。

    visudo针对多个同时编辑锁定 sudoers 文件,提供基本的完整性检查,并检查解析错误。

    您可以通过以下方式阅读更多内容:

    man visudo
    
    • 16
  2. Artur Meinild
    2022-02-02T03:11:40+08:002022-02-02T03:11:40+08:00

    当您使用 时visudo,如果您设法引入语法错误,visudo只会退出并提示“现在怎么办?”,但它不会在屏幕上为您提供任何选项。

    但是,选项在visudo联机帮助页中说明:

    visudo解析编辑后的​​sudoers文件,不会保存
    如果存在语法错误,则更改。发现错误后,visudo将
    打印一条消息,说明发生错误的行号
    用户将收到“现在怎么办?” 迅速的。此时的
    用户可以输入 'e' 重新编辑sudoers文件,输入 'x' 退出
    保存更改,或“Q”退出并保存更改。“问”选项
    应该格外小心地使用,因为如果visudo相信那里
    是一个解析错误,所以将sudo并且没有人能够再次sudo
    直到错误被修复。如果输入“e”来编辑sudoers文件
    检测到解析错误后,光标将放在
    发生错误的行(如果编辑器支持这个
    特征)。
    

    然而,这几乎是一堵文字墙,而且不是很直观。

    为避免在出现语法错误时造成混淆,我建议您在您的~/.bashrc(或源自 的另一个文件~/.bashrc)中定义以下函数。

    # Improved visudo command
    editsudo () {
      echo "Valid options at the 'What now?' prompt:"
      echo "  e : Re-edit the sudoers file"
      echo "  x : Exit without saving the changes"
      echo "  Q : Quit and save changes (NOT recommended)"
      sudo visudo
    }
    

    现在这有两个优点:

    1. 该命令editsudo确保运行sudo visudo(因此它更短)。
    2. 该命令editsudo首先打印一个帮助文本,这样如果您因错误退出,您就会在上面看到相关信息。
    • 2
  3. Jonathan Wheeler
    2020-09-26T08:32:57+08:002020-09-26T08:32:57+08:00

    直接从马嘴里说man visudo:

    visudo以安全的方式编辑sudoers文件,类似于 vipw(8)。 visudo锁定sudoers文件以防止多个同时编辑,提供基本的健全性检查,并在安装编辑后的文件之前检查解析错误。如果当前正在编辑sudoers文件,您将收到一条消息,请稍后重试。

    visudo在编辑后解析sudoers文件,如果有语法错误则不会保存更改。发现错误后,visudo将打印一条消息,说明发生错误的行号,用户将收到“现在怎么办?” 迅速的。[...]

    • 1

相关问题

  • GUI sudo 不工作?

  • 如何在 sudo 下只运行一次桌面图形应用程序?

  • 如何将用户添加到“sudo”组?

  • Nautilus 自动以 root 身份浏览

  • 为什么我需要 root 权限才能在命令行中卸载驱动器,而不是在 Nautilus 中?如何改变它?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve