我没有获得权限,编辑 /etc/sudoers

gan*_*ars 9 root sudo privileges

我想在不询问 root 密码的情况下运行任何程序。因为我是唯一使用该系统的人。所以我用谷歌搜索并编辑了/etc/sudoers.

我做了什么:

# chmod 640 /etc/sudoers
# vim /etc/sudoers
Run Code Online (Sandbox Code Playgroud)

添加如下一行:

# User privilege specification
root    ALL=(ALL:ALL) ALL
sgg ALL=(ALL:ALL) ALL
Run Code Online (Sandbox Code Playgroud)

保存并关闭文件。重新启动系统。但没有改变/改进。我想更改任何其他线路吗?或者有什么办法吗?

编辑:

1.我将权限更改/etc/sudoers0440. ls -l /etc/sudoers结果是

-r--r----- 1 root root 772 May  4 19:43 /etc/sudoers
Run Code Online (Sandbox Code Playgroud)

2.我跑# visudo。文件内容是

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
sgg ALL=NOPASSWD:ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
Run Code Online (Sandbox Code Playgroud)

但是当我运行时它仍然要求输入密码sudo ls

系统信息Ubuntu 14.04 x86_64 3.13.0-24-generic

ter*_*don 11

首先是一些一般性的观点:

  1. 切勿/etc/sudoers直接编辑。您应该始终使用sudo visudo它,它允许您编辑文件,但在保存之前检查它是否有错误。的语法sudoers很棘手,错误会使您的系统无法使用,因为您将无法再使用sudo.

  2. 永远不要更改/etc/sudoers. 通常,您不应更改系统文件的权限。在许多情况下,与它们相关联的程序将无法正常运行,这是不好的做法和安全漏洞。这sudo就是首先要做的,因此您无需更改权限。

    此外,如果您将 的权限设置/etc/sudoers为 640 并且能够对其进行写入,则意味着您也将其所有者更改为您的用户。这将有效地打破它。如中所述man sudoers

    /etc/sudoers 归 gid N 所有,应该是 1 sudoers 文件拥有错误的组所有权。如果您希望更改 sudoers 文件组所有权,请将“sudoers_gid=N”(其中“N”是拥有 sudoers 文件的组 ID)添加到 sudo.conf(5) 文件中的 sudoers 插件行。

  3. 如果您希望普通用户能够安装驱动器,更好的方法是在/etc/fstab. 使用您的示例,您会希望此行出现在那里:

    /dev/sda6   /media/sgg/D    vfat    users,rw,errors=remount-ro,noauto  0   0
    
    Run Code Online (Sandbox Code Playgroud)

    这将允许普通用户安装它

    mount /dev/sda6
    
    Run Code Online (Sandbox Code Playgroud)
  4. 如果尽管如此,您仍然希望允许您的用户在没有密码的情况下运行任何命令,那么您要添加到/etc/sudoers(使用sudo visudo)的行是:

    sgg ALL=NOPASSWD:ALL
    
    Run Code Online (Sandbox Code Playgroud)

    保存文件并退出visudo并尝试运行sudo ls,您不应该被要求输入密码。我刚刚测试并可以确认它适用于我的 LMDE。