我通过SSH连接到VM实例,错误地运行了以下命令:
"chmod-R755/usr";
然后我开始收到以下消息:
"usr/bin/sudo必须由uid 0所有,并将setuid位设置为"0";
我读过不同的解决方案:
- 设置启动脚本以更改root密码并通过
gcloud测试版计算ssh服务器名
但是,我无法停止我的实例,因为我有一个本地SSD分配给它,所以我认为启动脚本不起作用,通过ssh连接会要求我输入密码:
user@compute.3353656325014536575的密码:
但我从未为正在使用的用户设置过密码。
有什么解决方案可以让我再次连接到服务器并修复错误吗?
编辑:我有一个用户是我为FTP手动创建的,但这个用户没有sudo权限,有办法知道sudo密码吗?
提前谢谢。
根据手头的问题,命令chimed-R755将授予每个人root权限在阅读其他步骤之前,先试试这个。进入你的实例。更改密码只需键入Sudo密码键入新密码并确认新密码
如果不起作用,按照下面的步骤操作
"usr/bin/sudo必须由uid 0所有,并将setuid位设置为"0";
这意味着sudo的root权限被重写了,这对使用sudo造成了限制,并导致您出现问题,比如您失去了所有的root访问权限。以下步骤应有助于解决问题
创建实例的备份或快照
创建一个全新的实例,并将本地ssd从上一个实例分离。附加到新创建的实例。
登录到新实例并在root中创建一个新文件夹,然后以root身份启动操作。
检查新实例中连接的驱动器:"mount"……"fdisk-l|grep Disk"。
在根目录中创建新文件夹:"mkdir/newfolder">
现在装载vol:"sudo mount/dev/xvdf1/newfolder/">
装载后,如果你检查权限,你会发现由于受影响的卷,新文件夹权限在装载后发生了更改: