这发生在最新的 Ubuntu 20.04 系统上。
从今天起,我无法sudo
再在笔记本电脑上使用。我使用的是安装 Ubuntu 后创建的标准用户帐户。我不记得我是否编辑过/etc/sudoers
以添加我的用户帐户以便能够使用sudo
,或者我是否使自己成为该sudo
组的成员。今天我不是该sudo
组的成员。事实上,我只是我自己的私人组的成员,该组与我的用户名和相对应lpadmin
。
自从我上次使用以来,也/etc/group
没有改变:/etc/sudoers
sudo
$ ls -l /etc/group
-rw-r--r-- 1 root root 1375 févr. 24 09:31 /etc/group
$ ls -l /etc/sudoers
-r--r----- 1 root root 755 févr. 3 2020 /etc/sudoers
还有其他方法可以配置sudo
我可能使用过的但现在已经撤消的访问权限吗?
我sudo
经常使用它来使我的系统保持最新状态。最后一次是在三天前(我签入了/var/log/auth.log
)。
例如:sudo
成功
Mar 5 16:25:55 MYMACHINE sudo: MYUSERNAME : TTY=pts/0 ; PWD=/home/MYUSERNAME ; USER=root ; COMMAND=/usr/bin/umount XXXXXXXXXXXX
Mar 5 16:25:55 MYMACHINE sudo: pam_unix(sudo:session): session opened for user root by MYUSERNAME(uid=0)
Mar 5 16:25:55 MYMACHINE sudo: pam_unix(sudo:session): session closed for user root
今天sudo
失败了
Mar 8 17:16:12 MYMACHINE sudo: pam_unix(sudo:auth): Couldn't open /etc/securetty: No such file or directory
Mar 8 17:16:12 MYMACHINE sudo: MYUSERNAME : user NOT in sudoers ; TTY=pts/16 ; PWD=/XXXX ; USER=root ; COMMAND=/usr/bin/mount XXXX
Mar 8 17:16:12 MYMACHINE sudo: pam_unix(sudo:auth): Couldn't open /etc/securetty: No such file or directory
Mar 8 17:16:28 MYMACHINE sudo: pam_unix(sudo:auth): conversation failed
Mar 8 17:16:28 MYMACHINE sudo: pam_unix(sudo:auth): auth could not identify password for [MYUSERNAME]
由于我执行的所有命令sudo
都已记录,因此我可以验证我没有输入会导致我被锁定在机器之外的愚蠢命令。
我最后成功的操作之一sudo
是更新我的系统。当时更新的软件包是:
update-manager-core:amd64 (1:20.04.10.5, 1:20.04.10.6), dkms:amd64 (2.8.1-5ubuntu1, 2.8.1-5ubuntu2), nvidia-prime:amd64 (0.8.15.3~0.20.04.1, 0.8.16~0.20.04.1), libxnvctrl0:amd64 (440.82-0ubuntu0.20.04.1, 460.39-0ubuntu0.20.04.1), python3-update-manager:amd64 (1:20.04.10.5, 1:20.04.10.6), nvidia-settings:amd64 (440.82-0ubuntu0.20.04.1, 460.39-0ubuntu0.20.04.1)
我的问题是:这怎么可能发生??这个问题很容易解决。我的管理员帐户仍然存在,并且有sudo
。但我想从中吸取教训。显然,我的系统可能被黑客入侵了,但我更愿意相信这是我在某个方面犯的用户错误……
答案1
经过进一步的挖掘,我解决了这个问题 - 正如我希望的那样,这是用户错误。由于/etc/group
在 2 月 24 日进行了更改,我回顾了我的auth.log
文件并发现了以下内容:
Feb 24 09:31:45 MYMACHINE sudo: MYUSERNAME : TTY=pts/17 ; PWD=/home/XXX ; USER=root ; COMMAND=/usr/sbin/usermod -G lpadmin MYUSERNAME
-a
注意命令行中缺失的内容usermod
。我无意中将自己从除lpadmin
我的主要组之外的所有组中移除。
直到现在我才注意到任何事情,因为直到这个周末我才重新启动我的电脑(总是暂停和恢复)。当我搜索sudo
之前输入的愚蠢命令时,我没有回溯那么久。我确实搜索了usermod
命令,~/.bash_history
但没有成功。该命令一定是在终端窗口中输入的,而该终端的历史记录已被后来关闭的另一个终端覆盖。