我在通过 ssh 连接的无头服务器上使用 Debian。
当我安装Debian时,我没有创建root帐户,因此创建的第一个用户位于sudo组中。然后我将该用户添加到另一个组,但由于我的无知,我使用了:
sudo usermod -G NewGroup UserName
代替:
sudo usermod -aG NewGroup UserName
如果没有“a”(附加),这会将用户从除默认 UserName 组之外的每个组(包括 sudo)中删除。
我现在已经吸取了教训,但是有什么方法可以重新获得对此安装的超级用户访问权限吗?
这是一个测试环境,没有任何备份或恢复,所以如果一切都丢失了,我可以简单地重新格式化,但我想我还是会问。
答案1
假设您可以物理访问服务器,您可以创建一个具有无头引导例程的实时介质,其中包括要启动的 ssh 服务器,然后通过这些 ssh 凭据访问服务器,或者 - 更简单的方法 - 如果您有可用的显示器和键盘,将它们插入并简单地启动进入系统。
然后挂载原始硬盘并/etc/group
相应地编辑文件(即sudo:x:<integer_number>:<username>
:)。
作为对未来的提示:恕我直言,拥有一个活动root
帐户(即密码未锁定)不一定存在安全风险 - 特别是如果您限制 root 的 ssh 访问。