Linux下user is not in the sudoers file问题的解决
前言
最近linux使用的越来越频繁,对用户、组、权限开始慢慢多了一些了解,慢慢就从之前root一把梭改成用禁掉root登录 + 低权限账号配合sudo进行系统管理。
但这样谨慎的操作的日常使用中碰到了一些问题,比如在vps和自己的虚拟机上安装debian时,从root切换到低权限账户(假定是jack
),用sudo会提示jack is not in the sudoers file
,甚至在root账号下也会提示sudo: command not found
。
这种情况之之前在用ubuntu和armbian的时候没见过啊,搜了一些解决方案,这里做简单记录。
报错:sudo: command not found
这个报错通常情况下是因为sudo
没有安装。讲真我也用过好多linux发行版(在虚拟机里简单体验),这还是第一次见到连sudo
都没装的。
apt install sudo
报错:jack is not in the sudoers file
网上有一些劣质的文章里说这个报错的解决方案是在/etc/sudoers
加一条。
jack ALL=(ALL:ALL) ALL
NO,不是这么改的。不是直接给用户授权,而是给sudo
组授权,通过sudo
命令来让低权限用户临时使用root权限。
先确认/etc/sudoers
配置文件里有没有这一条,没有就加上去,保存退出。
%sudo ALL=(ALL:ALL) ALL
然后执行以下命令,把用户jack
添加到sudo
组。
usermod -aG sudo jack
到这里就完成配置了。默认jack
是低权限账户,需要root权限时通过加sudo
命令来授权。