一次啼笑皆非的操作

简单的东西配置下,希望让操作方便些,没想到却造成了一次啼笑皆非的操作。

起因

每次用默认的用户切换 root 权限,sudo su - 都要输入密码,不免麻烦,于是去网络的世界中找找 去掉免输密码的方式。

修改方式:

  1. 切换到 root,sudo su - (注意有- ,这和su是不同的,在用命令”su”的时候只是切换到root,但没有把root的环境变量传过去,还是当前用乎的环境变量,用”su -“命令将环境变量也一起带过去,就象和root登录一样)

  2. visudo 或者 vim /etc/sudoers,查看文中的注释。
    移动光标,到一行root ALL=(ALL) ALL的下一行,按a,进入append模式,输入

    1
    your_user_name ALL=(ALL)   ALL

    保存,退出。这样就把自己加入了sudo组,可以使用sudo命令了。

  3. 默认5分钟后刚才输入的 sodo 密码过期,下次sudo需要重新输入密码,如果觉得在sudo的时候输入密码麻烦,把刚才的输入换成如下内容即可:

    1
    your_user_name ALL=(ALL) NOPASSWD: ALL

    这样,每次 sudo su - 的时候就不用再输入密码了。

问题-乌龙的过程

问题就出再修改之后,退出 root ,使用普通用户 sudo su -,报语法错误。

1
2
3
4
>>> /etc/sudoers: 语法错误 near line 21 <<<
sudo: /etc/sudoers 中第 21 行附近有解析错误
sudo: 没有找到有效的 sudoers 资源,退出
sudo: 无法初始化策略插件

这下就很尴尬了,目前只有一个用户,切换不到 root ,不能修改也不能也没法添加用户了。

尝试了网上的多种方式,有重启进入 grub ,然后在进入 recovery 模式的,不行。

后来,还是找到了最靠谱的一种方式:

1
pkexec visudo

输入完,需要输入密码,然后就可以修改文件了。看到了错误的原因是

your_user_name ALL=(ALL) NOPASSWORD: ALL(password 应该是 PASSWD)