[Others] sudo权限丢失
Tofloor
poster avatar
130******88
deepin
2024-06-23 11:50
Author

昨天使用sudo 解开文件的小锁,导致出现再使用sudo 命令时出现

/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位

随后关机重启,deepin系统无法进入

但可以使用Ctrl+Alt+F2进入tty2 ,但是使用sudo命令时出现Operation not permited

本人有启动U盘,会进入UOS live user,但是不知如何操作

问一下各位大佬,有能够解决这个问题的吗?非常感谢!

Reply Favorite View the author
All Replies
deepinuser17
deepin
2024-06-23 12:14
#1

进入UOS live user状态以后, 打开文字终端, 运行这个命令查看硬盘上的文件系统是否已经加载:

df -h 

如果加载, 一般是加载在/mnt/sysroot 或者 /mnt/sysimage.

如果没有加载, 运行以下命令, 查看根文件系统. 一般根文件系统比较大.

lsof

假设根文件系统是 /dev/sda2, 手动加载如下:

mkdir /mnt/sysimage

mount /dev/sda2 /mnt/sysimage

在根文件系统加载以后, 运行如下命令添加指定用户给sudo权限:

chroot /mnt/sysimage /bin/bash
source /etc/profile
echo "<用户名> ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/<用户名>
chmod 0600 /etc/sudoers.d/<用户名>
exit
reboot

重启机器以后, <用户名>就可以使用sudo了.

Reply View the author
130******88
deepin
2024-06-23 17:21
#2
It has been deleted!
130******88
deepin
2024-06-23 17:21
#3
deepinuser17

进入UOS live user状态以后, 打开文字终端, 运行这个命令查看硬盘上的文件系统是否已经加载:

df -h 

如果加载, 一般是加载在/mnt/sysroot 或者 /mnt/sysimage.

如果没有加载, 运行以下命令, 查看根文件系统. 一般根文件系统比较大.

lsof

假设根文件系统是 /dev/sda2, 手动加载如下:

mkdir /mnt/sysimage

mount /dev/sda2 /mnt/sysimage

在根文件系统加载以后, 运行如下命令添加指定用户给sudo权限:

chroot /mnt/sysimage /bin/bash
source /etc/profile
echo "<用户名> ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/<用户名>
chmod 0600 /etc/sudoers.d/<用户名>
exit
reboot

重启机器以后, <用户名>就可以使用sudo了.

I am appreciated to your reply.

Now I am in UOS Live User ,which can't speak in Chinese ,so I spaek in English, wishing you foregive me .

Reading your reply ,I feel you have advanced knowledge in this field.

But I am beginner ,can't understand what "/dev/sda2".

As your advise ,here are some picures as follows:

https://www.123pan.com/s/vObSVv-TvCEd.html

Because I just 1level,can't upload pictures

The red arrow is my deepin system(need repair) .The yellow arrow is my deepin USB(now using)

Wshing you reply! Thank you very much.

Waiting online.......

Reply View the author
兆兆嘟嘟嘟
deepin
2024-06-23 17:48
#4
130******88

I am appreciated to your reply.

Now I am in UOS Live User ,which can't speak in Chinese ,so I spaek in English, wishing you foregive me .

Reading your reply ,I feel you have advanced knowledge in this field.

But I am beginner ,can't understand what "/dev/sda2".

As your advise ,here are some picures as follows:

https://www.123pan.com/s/vObSVv-TvCEd.html

Because I just 1level,can't upload pictures

The red arrow is my deepin system(need repair) .The yellow arrow is my deepin USB(now using)

Wshing you reply! Thank you very much.

Waiting online.......

/dev/sda2是那个回答者假设的一个磁盘分区名称,你那边分区名称具体叫什么得根据具体情况而定,使用系统自带的磁盘管理器可以查看。
image.png像我这边分区名称叫/dev/nvme0n1p8。

你应该可以从左面一大堆分区中找到你的Deepin系统的根分区,然后就可以查到分区名称了。

Reply View the author
130******88
deepin
2024-06-23 17:50
#5
兆兆嘟嘟嘟

/dev/sda2是那个回答者假设的一个磁盘分区名称,你那边分区名称具体叫什么得根据具体情况而定,使用系统自带的磁盘管理器可以查看。
image.png像我这边分区名称叫/dev/nvme0n1p8。

你应该可以从左面一大堆分区中找到你的Deepin系统的根分区,然后就可以查到分区名称了。

OK,thank you very much😃

Reply View the author
130******88
deepin
2024-06-23 17:55
#6
deepinuser17

进入UOS live user状态以后, 打开文字终端, 运行这个命令查看硬盘上的文件系统是否已经加载:

df -h 

如果加载, 一般是加载在/mnt/sysroot 或者 /mnt/sysimage.

如果没有加载, 运行以下命令, 查看根文件系统. 一般根文件系统比较大.

lsof

假设根文件系统是 /dev/sda2, 手动加载如下:

mkdir /mnt/sysimage

mount /dev/sda2 /mnt/sysimage

在根文件系统加载以后, 运行如下命令添加指定用户给sudo权限:

chroot /mnt/sysimage /bin/bash
source /etc/profile
echo "<用户名> ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/<用户名>
chmod 0600 /etc/sudoers.d/<用户名>
exit
reboot

重启机器以后, <用户名>就可以使用sudo了.

mkdir: cannot create directory '/mnt/sysimage': Permission denied

Reply View the author
兆兆嘟嘟嘟
deepin
2024-06-23 21:23
#7
130******88

mkdir: cannot create directory '/mnt/sysimage': Permission denied

那就在执行 mkdir时也加上 sudo,后面凡是有权限相关报错的前面都加上 sudo试试。

Reply View the author